<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization/RSS"></atom:link>
	<image>
		<url>http://media.ch9.ms/ch9/36a4/c5cfce73-c717-40e9-a68a-426b0f4536a4/C9GoingNative12PGO_220.jpg</url>
		<title>Channel 9 - GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<link></link>
	</image>
	<description>Profile Guided Optimization, or PGO, is an approach to optimization where the compiler uses profile information to make better optimization decisions for the program. &amp;nbsp;Profiling is the process of gathering information of how the program is used during runtime. &amp;nbsp;In a nutshell, PGO is optimizations based on user scenarios whereas static optimizations rely on the source file structure. VC&amp;#43;&amp;#43; has supported this approach to measurement-based code optimization since VC2005. In this episode of GoingNative, we are going to dig into VC&amp;#43;&amp;#43;&#39;s implementation of&amp;nbsp;PGO with some of the folks who make it: Program Manager Amit Mohindra and Development Lead Ten Tzen. Tune in. Table of contents [00:00]&amp;nbsp; GoingNative();\\ Charles and Ale discuss C&amp;#43;&amp;#43; at Build 2012 and&amp;nbsp;introduce Profile Guided Optimization.[04:09]&amp;nbsp; Charles interviews VC&amp;#43;&amp;#43; back end compiler team members Ten Tzen (lead developer) and Amit Mohindra (PM) about VC&amp;#43;&amp;#43;&#39;s implementation of PGO. Whiteboarding included. This is a long interview, so make some time.[01:04:15] &amp;nbsp;~GoingNative(); // Charles and Ale reflect on PGO, Charles answers Herb Sutter&#39;s question (that Herb asked Charles during his Build 2012 C&amp;#43;&amp;#43; session (in his intro remarks). Hi Herb!  We really want to hear from you, so please tweet feedback to @C9GoingNative (follow us!) and send your requests, ideas, complaints, praises, hate mail, and love letters to C9GoingNative at hotmail com. We will read and respond to all messages! That&#39;s how we roll, brothers and sisters. If you are a Facebook user, then please join our C9::GoingNative Facebook group. Go native! </description>
	<link></link>
	<language>en</language>
	<pubDate>Mon, 20 May 2013 12:40:00 GMT</pubDate>
	<lastBuildDate>Mon, 20 May 2013 12:40:00 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>Great show Charles. As an idea for a future episode, it would be awesome to get two or more senior Microsoft C&#43;&#43; devs, from different products and together talk about how they're using C&#43;&#43; 11 within their *existing* codebases. What new language idioms are they finding useful and what surprised them?</p><p>&nbsp;</p><p>&nbsp;</p><p>posted by tomkirbygreen</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897624060907487</link>
		<pubDate>Thu, 29 Nov 2012 05:06:46 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897624060907487</guid>
		<dc:creator>tomkirbygreen</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897624060907487">dot_tom</a>: Thanks, Tom. I've been trying to do just that. Unfortunately, nobody has taken the bait, only sniffed the hook and then swam away... I know you've asked this before and I'm sorry for not delivering on it (talk to folks not on the C&#43;&#43; team who use C&#43;&#43; in modern ways to solve modern problems). Will keep trying! (C&#43;&#43; devs are shy... Perhaps it's because they were kept in the dark for so long?..... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' />).</p><p>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897629221402457</link>
		<pubDate>Thu, 29 Nov 2012 05:15:22 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897629221402457</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@Charles Are you fishing where the fishes are? (to parrot Laura)</p><p>posted by AdamSpeight2008</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897886175076887</link>
		<pubDate>Thu, 29 Nov 2012 12:23:37 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897886175076887</guid>
		<dc:creator>AdamSpeight2008</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[Thanks for the show. Charles the C&#43;&#43; Knight&#33;<p>posted by Ricode</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898021965203430</link>
		<pubDate>Thu, 29 Nov 2012 16:09:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898021965203430</guid>
		<dc:creator>Ricode</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[For the love of god lol, just because Ale calls is &#34;pogo&#34; doesn&#39;t mean it&#39;s actually said that way... It&#39;s said as P-G-O, aka full acronym letter pronunciation &#58;P<br>Otherwise, Its a very crucial and amazing feature of a compiler, I&#39;ve used it for years in both MS C&#43;&#43; and GCC.<br>Thank you for the episode&#33;<p>posted by Heavensrevenge</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898239786954431</link>
		<pubDate>Thu, 29 Nov 2012 22:12:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898239786954431</guid>
		<dc:creator>Heavensrevenge</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898239786954431">Heavensrevenge</a>: the technology is also sometimes referred to as POGO, thus the other way of saying it...</p><p>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898320614399356</link>
		<pubDate>Fri, 30 Nov 2012 00:27:41 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898320614399356</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p></p><blockquote><div class="quoteText"><p></p><p><a class="permalink" title="Comment Permalink" href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634897886175076887">12 hours&nbsp;ago</a>, <a href="/Niners/AdamSpeight2008">Adam​Speight2008</a> wrote</p><p>@Charles Are you fishing where the fishes are? (to parrot Laura)</p><p></p></div></blockquote><p></p><p>I don't understand the question.</p><p>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898321274917446</link>
		<pubDate>Fri, 30 Nov 2012 00:28:47 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898321274917446</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898320614399356">Charles</a>: Just saying that I'm pretty sure it's just one of those MS lingo things to sound cool. As it stands, that term doesn't exist outside of the death star <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9' alt='Tongue Out' /></p><p>posted by HeavensRevenge</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898336585837922</link>
		<pubDate>Fri, 30 Nov 2012 00:54:18 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898336585837922</guid>
		<dc:creator>HeavensRevenge</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>Actually, its really Pogo</p><p>The exported funtions in pgodb110.dll</p><pre>PogoDbIsLocalSymbol<br>PogoDbAllocEntryProbeId<br>PogoDbAllocSimpleProbeId<br>PogoDbAllocValueProbeId<br>PogoDbClose<br>PogoDbCloseCallGraph<br>PogoDbCloseFunction<br>PogoDbCloseModule<br>PogoDbCreateGlobalStreams<br>PogoDbEnableThreadSafetyChecks<br>PogoDbFGNodeType<br>PogoDbFinishFunction</pre><p>&nbsp;</p><p>The modules in pgodb110.dll and pgort110.dll</p><p>See ...Src\Tools\Pogo\....</p><pre>0002 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\pogodb\objr\i386\pogodb.obj<br>0003 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\pogodb\objr\i386\pogodbmt.obj<br>0004 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\pogodb\objr\i386\loadui.obj<br>0006 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\pogodb\objr\i386\pgodb.rso<br>0002 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\irt\pgort\objr\i386\irtdll.obj<br>0003 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\irt\pgort\objr\i386\pogowin32interface.obj<br>0004 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\irt\pgort\objr\i386\pgort-loadui.obj<br>0005 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\irt\pgort\objr\i386\pgc.obj<br>0007 F:\dd\vctools\Compiler\UTC\Src\Tools\Pogo\irt\pgort\objr\i386\pgort.rsoj</pre><p>&nbsp;</p><p>posted by felix9</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898438959768325</link>
		<pubDate>Fri, 30 Nov 2012 03:44:55 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898438959768325</guid>
		<dc:creator>felix9</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898438959768325">felix9</a>:&nbsp; Leave it to Mary Jo Felix to get to the bottom of it!! ... <br><br><img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br>C</p><p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898481877795427</link>
		<pubDate>Fri, 30 Nov 2012 04:56:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898481877795427</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[&#64;charles&#58; Actually they are big sharks in disguise &#58;&#41; You need to raise the bar &#59;&#41; Then they might take a bait...<p>posted by freefly</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634899729558394877</link>
		<pubDate>Sat, 01 Dec 2012 15:35:55 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634899729558394877</guid>
		<dc:creator>freefly</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898481877795427">Charles</a>: Anytime ! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9' alt='Tongue Out' /> </p><p>posted by felix9</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634899777446767272</link>
		<pubDate>Sat, 01 Dec 2012 16:55:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634899777446767272</guid>
		<dc:creator>felix9</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>I use OpenMP heavily, and sadly it is <a href="http://msdn.microsoft.com/en-us/library/7k7e9y2d%28VS.100%29.aspx">said to be incompatible with PGO</a>.&nbsp; I suspect this is a major adoption block for many others too (if you have OpenMP usage statistics, you might be able to verify this).</p><p>What's weirder is that a Connect issue I upvoted long ago about exactly this has just vanished off the net (<a href="http://connect.microsoft.com/VisualStudio/feedback/details/100552/pgo-and-openmp">here's the dead url</a>).&nbsp; The only trace I can find of a semi-explanation given there for this incompatibility persists in <a href="http://thetweaker.wordpress.com/2010/06/20/pgo-and-openmp/">my blog</a>:</p><p><em>&nbsp;&nbsp; 'Since PGO and OpenMP are both designed to increase performance, it is a shame that they can't be used together, but there were some major design issues preventing this. There is an ordering dependency in the designs of PGO and OpenMP. OpenMP changes some things about the program state that are important to PGO, and it does this after PGO has already processed the program state and made many decisions based on it.</em></p><p><em>...</em></p><p><em>We will be considering a modification of the designs of PGO and/or OpenMP to get this to work in a future product version.' &nbsp;</em>&nbsp; [This was posted circa 2005&nbsp;&nbsp; -Ofek]</p><p>So guys - PGO is a great feature and i'd love to use it. But if you're serious about enhancing adoption, puh-leeese grab this bull by the horns, and give us PGO <em>with</em> OpenMP.</p><p>posted by Ofek_Shilon</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634902512313676609</link>
		<pubDate>Tue, 04 Dec 2012 20:53:51 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634902512313676609</guid>
		<dc:creator>Ofek_Shilon</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>Clever bit about instrumenting using a spanning tree!</p><p>posted by Jules.dot</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634903985738556864</link>
		<pubDate>Thu, 06 Dec 2012 13:49:33 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634903985738556864</guid>
		<dc:creator>Jules.dot</dc:creator>
	</item>
	<item>
		<title>Re: GoingNative 12: C++ at Build 2012, Inside Profile Guided Optimization</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634898239786954431">Heavensrevenge</a>:just because you don't call it pogo, doesn't mean it's not called pogo&nbsp; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif?v=c9' alt='Tongue Out' /></p><p>posted by Marius Bancila</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634968372289451645</link>
		<pubDate>Tue, 19 Feb 2013 02:20:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/C9-GoingNative/C9GoingNative-12-C-at-BUILD-2012-Inside-Profile-Guided-Optimization#c634968372289451645</guid>
		<dc:creator>Marius Bancila</dc:creator>
	</item>
</channel>
</rss>