<?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 - Russell Hadley: The Route to C++ Code Optimization</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/404534_100x75.jpg</url>
		<title>Channel 9 - Russell Hadley: The Route to C++ Code Optimization</title>
		<link></link>
	</image>
	<description>It&#39;s nice to write clean code (code that looks good, is organized, is easy for others to understand by reading it, etc). As developers we get to use great tools to implement algorithms in our favorite languages. The act of composing a program is much like
 that of writing a story or, in some cases, a poem  But the underlying hardware isn&#39;t much interested in intelligent class hierachies and easy-to-understand lines of programming language syntax. Processors do not speak C&amp;#43;&amp;#43; or Java or C# or VB, etc.
The focus of this interview is mapping the (long and complicated)path to executable machine code that the machine natively understands and acts&amp;nbsp;upon, bringing&amp;nbsp;your code to life. How does this work, exactly?Russell Hadley is a senior developer on the C&amp;#43;&amp;#43; team here at Microsoft and he spends his days (and nights, ocassionally) writing code that takes the front-end compilation linear (flattened) blob and turns it into highly optimized machine code patterns&amp;nbsp;that
 the processor can execute in a highly efficient manner. This is a deep interview with lots of whiteboarding, but it is shallow enough so you won&#39;t drown if you can&#39;t swim very well. Enjoy. This is another great conversation with one of the C&amp;#43;&amp;#43; experts who live in Building 41.LOW RES FILEMP4 FILE</description>
	<link></link>
	<language>en</language>
	<pubDate>Thu, 23 May 2013 09:20:18 GMT</pubDate>
	<lastBuildDate>Thu, 23 May 2013 09:20:18 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[I was thinking during that video how depressing it was that my job will never be as cool as his.&nbsp; I felt like at the end you just wanted to stick it to me <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' />.<br /><p>posted by obrienslalom</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469399490000000</link>
		<pubDate>Wed, 21 May 2008 04:12:29 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469399490000000</guid>
		<dc:creator>obrienslalom</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[
<p>Excellent interview as always, it's great to see more of the C&#43;&#43; team. </p>
<p>I thought Charles read my mind here, as I was just thinking that it would be great to have some videos covering optimization.</p>
<p>If there were any more videos on this theme I would be interested to know about what C&#43;&#43; code is difficult to optimize and how we should best write C&#43;&#43; to give the optimizer the most help we can about the semantics of our code, perhaps covering __assume
 et al?</p>
<p>Thanks for another great In-Deep look into C&#43;&#43;</p>
<p>posted by OliverTaylor</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469599940000000</link>
		<pubDate>Wed, 21 May 2008 09:46:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469599940000000</guid>
		<dc:creator>OliverTaylor</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[Is the flow through phases always down? I'm thinking flow would be kicked back up because of failed optimizations, re-optimization opportunities, resource overflow, hardware target feedback, etc?<br /><br />Excluding cache factors, at what point can you know how many actual cycles or microseconds an operation takes? Is predicted performance always accurate? If not, what situations foul up predictions? Are there situations where performance is non-determinable?<br /><br /><br /><p>posted by BSalita</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469785260000000</link>
		<pubDate>Wed, 21 May 2008 14:55:26 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633469785260000000</guid>
		<dc:creator>BSalita</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[Thank you for this great interview, i love watching this stuff. It would be interessting when microsoft starts using the new compiler on real world products like windows, office or the .net framework. Also it would be interessting how much faster the new
 code will run compared to the old code.<p>posted by berni</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471364370000000</link>
		<pubDate>Fri, 23 May 2008 10:47:17 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471364370000000</guid>
		<dc:creator>berni</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[
<p class="MsoNormal"><font size="3"><font face="Calibri">Hi! <br /><br /></font></font><font size="3"><font face="Calibri">You bring up a good point.&nbsp; Because we generate code&nbsp;with this sequential translation approach there are times when some optimization transformations expose new opportunities.&nbsp; In general we call this the &quot;Phase
 Ordering Problem&quot;.&nbsp; The traditional approach (what we do) is to re-run the transformations that are profitable when there's compiler throughput budget to do it. (of course we can't iterate forever in addition some of the problems won’t converge)<br /><br /></font></font><font size="3"><font face="Calibri">For the predicted cycles (and code size) of a particular instruction we typically start getting a rough idea at lower time when we select a machine opcode.<span>&nbsp;
</span>This becomes more concrete through register allocation and becomes very concrete in compiler terms at encoding time.<span>&nbsp;
</span>The compiler selected instruction has a processor defined cost in terms of machine resources (e.g. execution elements or slots in the out of order buffer) which are fixed but then data dependencies – is the input value available at the right time or
 schedule - and micro-architectural issues intrude.<span>&nbsp; </span>Finally as you say the cache trumps the other issues.<span>&nbsp;
</span>I think it’s important to note here that we’re getting new machines all the time with different micro-architectures, in fact much more quickly than new compilers, and the compiler needs to try and make a single executable that gives good performance
 across a spectrum of machines. <span>&nbsp;</span>So some of the instruction performance characteristics are hard to know ahead of time.<span>&nbsp;
</span>Of course we work closely with our partners to make sure that future machines provide good performance for Microsoft apps and tools output.<span>&nbsp;
</span>Finally, with respect to predictability, if you know the machine, it’s micro-arch, the working set, and execution environment (OS and workload) theoretically you can predict exactly the performance (digital computer after all) but in actuality we model
 a “typical” case, maintain good engineering, and then do lots of benchmarking on real world scenarios to ensure the performance of our output code.</font></font></p>
<p>posted by rhadley</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471610860000000</link>
		<pubDate>Fri, 23 May 2008 17:38:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471610860000000</guid>
		<dc:creator>rhadley</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[It would be nice if the interviewer was an actual C&#43;&#43; programmer.&nbsp; The interview is at too high a level for me, I've known that the compiler produces .obj's that get linked by the linker for quite awhile now.<p>posted by Sniffy</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471695270000000</link>
		<pubDate>Fri, 23 May 2008 19:58:47 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471695270000000</guid>
		<dc:creator>Sniffy</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[
<blockquote>
<div class="quoteAuthor">Sniffy wrote:</div>
<div class="quoteBody">&#65279;It would be nice if the interviewer was an actual C&#43;&#43; programmer.&nbsp; The interview is at too high a level for me, I've known that the compiler produces .obj's that get linked by the linker for quite awhile now.</div>
</blockquote>
<br /><br />That's a good point. This is precisely why we created the Expert to Expert series. In this case, we wanted to reach as broad of a programmer audience as possible since C&#43;&#43; is only one programming language that gets compiled (the information here is not just
 relevant to C&#43;&#43; after all - note the conversation on what the .NET JIT does, etc).<br /><br />I'm a generalist and we feel this is the best way to have deep, though broadly interesting, technical conversations.<br /><br />You will see a C&#43;&#43; Expert to Expert interview on C9 in addition to the more broadly-scoped conversations.<br /><br />Thanks,<br />C<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471762480000000</link>
		<pubDate>Fri, 23 May 2008 21:50:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633471762480000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[
<blockquote>
<div class="quoteAuthor">Charles wrote:</div>
<div class="quoteBody">&#65279;<br />You will see a C&#43;&#43; Expert to Expert interview on C9 in addition to the more broadly-scoped conversations.<br /></div>
</blockquote>
<br /><br />Yay! This was an awesome interview btw, and I'd definitely like to see more of these going deep interviews in the near future.<br /><br />Cheers<br /><p>posted by evildictaitor</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472384080000000</link>
		<pubDate>Sat, 24 May 2008 15:06:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472384080000000</guid>
		<dc:creator>evildictaitor</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[the wole interview is &quot;technically&quot; offensive (we're not all a bunch of&nbsp;goofy/ms certified&nbsp;end users)<br /><br />they called by &quot;front end developer&quot; the actual programmer (writing 3rd generation source code) ?!?<br /><br />i believe that interviews like this one are not mean to help microsoft's image in any way (poor backend r&amp;d guy would almost lough at the questions, poor guy... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /><br /><br />anyway, you do what you gotta do, and we'll do what we gotta do 2!<br /><br /><p>posted by dancmarinescu</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472657710000000</link>
		<pubDate>Sat, 24 May 2008 22:42:51 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472657710000000</guid>
		<dc:creator>dancmarinescu</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[
<blockquote>
<div class="quoteAuthor">dancmarinescu wrote:</div>
<div class="quoteBody">&#65279;the wole interview is &quot;technically&quot; offensive (we're not all a bunch of&nbsp;goofy/ms certified&nbsp;end users)<br /><br />they called by &quot;front end developer&quot; the actual programmer (writing 3rd generation source code) ?!?<br /><br />i believe that interviews like this one are not mean to help microsoft's image in any way (poor backend r&amp;d guy would almost lough at the questions, poor guy... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /><br /><br />anyway, you do what you gotta do, and we'll do what we gotta do 2!<br /><br /></div>
</blockquote>
<br /><br />???<br /><br />Whatever....<br />C<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472945390000000</link>
		<pubDate>Sun, 25 May 2008 06:42:19 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633472945390000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: Russell Hadley: The Route to C++ Code Optimization</title>
		<description>
			<![CDATA[cool !<br /><p>posted by gndnet</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633480960030000000</link>
		<pubDate>Tue, 03 Jun 2008 13:20:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/Russell-Hadley-The-Route-to-C-Code-Optimization#c633480960030000000</guid>
		<dc:creator>gndnet</dc:creator>
	</item>
</channel>
</rss>