<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Load-hit-stores and the __restrict keyword</title>
	<atom:link href="http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/feed/" rel="self" type="application/rss+xml" />
	<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/</link>
	<description>Technical Notes On Game Development</description>
	<lastBuildDate>Wed, 28 Dec 2011 10:00:34 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Aliasing, the silent killer &#187; AltDevBlogADay (Staging Site)</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-5308</link>
		<dc:creator>Aliasing, the silent killer &#187; AltDevBlogADay (Staging Site)</dc:creator>
		<pubDate>Sun, 13 Feb 2011 01:18:08 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-5308</guid>
		<description>[...] have been changed somewhere else. This cause a &#8220;Load hits Store&#8221; (More about it here : http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/). The memory containing item_index is written just before the same memory is read. The CPU just [...]</description>
		<content:encoded><![CDATA[<p>[...] have been changed somewhere else. This cause a &#8220;Load hits Store&#8221; (More about it here : <a href="http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/" rel="nofollow">http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/</a>). The memory containing item_index is written just before the same memory is read. The CPU just [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elan</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-5223</link>
		<dc:creator>Elan</dc:creator>
		<pubDate>Sun, 11 Jul 2010 22:43:55 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-5223</guid>
		<description>&quot;x86&quot; is a very large family of processors with very different implementations. You can make a prediction about how an Intel Core Duo might behave, but it wouldn&#039;t necessarily be true about an i7 or an AMD chip, because their internal pipelines are dissimilar.  The upshot is you need to run your own timings on the processor you&#039;re targeting. 

One general prediction I can make is that every x86 processor I&#039;ve timed seems to have a huge latency when shuffling data between x87 float and general-purpose registers.</description>
		<content:encoded><![CDATA[<p>&#8220;x86&#8243; is a very large family of processors with very different implementations. You can make a prediction about how an Intel Core Duo might behave, but it wouldn&#8217;t necessarily be true about an i7 or an AMD chip, because their internal pipelines are dissimilar.  The upshot is you need to run your own timings on the processor you&#8217;re targeting. </p>
<p>One general prediction I can make is that every x86 processor I&#8217;ve timed seems to have a huge latency when shuffling data between x87 float and general-purpose registers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Foo Bar</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-5222</link>
		<dc:creator>Foo Bar</dc:creator>
		<pubDate>Sun, 11 Jul 2010 21:59:36 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-5222</guid>
		<description>Uhm, what about x86?</description>
		<content:encoded><![CDATA[<p>Uhm, what about x86?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-5148</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Wed, 06 Jan 2010 09:00:47 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-5148</guid>
		<description>Actually, it&#039;s assumed that any pointer can alias a variable of any type unless you compile with a strict-aliasing flag.  Look up type-punning.

Here&#039;s a good article:  http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html</description>
		<content:encoded><![CDATA[<p>Actually, it&#8217;s assumed that any pointer can alias a variable of any type unless you compile with a strict-aliasing flag.  Look up type-punning.</p>
<p>Here&#8217;s a good article:  <a href="http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html" rel="nofollow">http://cellperformance.beyond3d.com/articles/2006/05/demystifying-the-restrict-keyword.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LHS and the __restrict keyword &#171; Un italiano nella game industry</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-5115</link>
		<dc:creator>LHS and the __restrict keyword &#171; Un italiano nella game industry</dc:creator>
		<pubDate>Mon, 16 Nov 2009 17:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-5115</guid>
		<description>[...] http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/" rel="nofollow">http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruskin</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-26</link>
		<dc:creator>Ruskin</dc:creator>
		<pubDate>Mon, 06 Oct 2008 07:37:07 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-26</guid>
		<description>Yeah, unfortunately that&#039;s one of the many gulfs between what the C++ spec says &lt;i&gt;should&lt;/i&gt; happen and what &lt;i&gt;does&lt;/i&gt; happen in the compiler. The code in &lt;a href=&quot;http://assemblyrequired.wordpress.com/2008/09/06/more-on-__restrict/&quot; rel=&quot;nofollow&quot;&gt;my other entry&lt;/a&gt; is what actually came out of VC++; I guess it&#039;s more paranoid and assumes the programmer might have aliased any pointer to any other unless you tell it otherwise.

GCC on the PS3 does support strict aliasing rules, I&#039;m told.</description>
		<content:encoded><![CDATA[<p>Yeah, unfortunately that&#8217;s one of the many gulfs between what the C++ spec says <i>should</i> happen and what <i>does</i> happen in the compiler. The code in <a href="http://assemblyrequired.wordpress.com/2008/09/06/more-on-__restrict/" rel="nofollow">my other entry</a> is what actually came out of VC++; I guess it&#8217;s more paranoid and assumes the programmer might have aliased any pointer to any other unless you tell it otherwise.</p>
<p>GCC on the PS3 does support strict aliasing rules, I&#8217;m told.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: aruslan</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-27</link>
		<dc:creator>aruslan</dc:creator>
		<pubDate>Sun, 05 Oct 2008 19:04:29 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-27</guid>
		<description>Yes, only pointers to compatible types and char* can alias.
int* can&#039;t alias float*, and this is the reason to use unions when making dirty int-float hacks.</description>
		<content:encoded><![CDATA[<p>Yes, only pointers to compatible types and char* can alias.<br />
int* can&#8217;t alias float*, and this is the reason to use unions when making dirty int-float hacks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymouse</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-24</link>
		<dc:creator>anonymouse</dc:creator>
		<pubDate>Wed, 03 Sep 2008 03:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-24</guid>
		<description>I thought that only compatable types could alias? So for example, an int array can&#039;t alias a float array, and a CFoo* can&#039;t alias it&#039;s own member?</description>
		<content:encoded><![CDATA[<p>I thought that only compatable types could alias? So for example, an int array can&#8217;t alias a float array, and a CFoo* can&#8217;t alias it&#8217;s own member?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: realtimecollisiondetection.net - the blog &#187; Posts and links you should have read</title>
		<link>http://assemblyrequired.crashworks.org/2008/07/08/load-hit-stores-and-the-__restrict-keyword/comment-page-1/#comment-25</link>
		<dc:creator>realtimecollisiondetection.net - the blog &#187; Posts and links you should have read</dc:creator>
		<pubDate>Tue, 02 Sep 2008 15:33:38 +0000</pubDate>
		<guid isPermaLink="false">http://assemblyrequired.wordpress.com/?p=8#comment-25</guid>
		<description>[...] Load-hit-stores and the __restrict keyword, Elan Ruskin talks about what a gigantic performance suck load-hit-stores can be on the (pretty [...]</description>
		<content:encoded><![CDATA[<p>[...] Load-hit-stores and the __restrict keyword, Elan Ruskin talks about what a gigantic performance suck load-hit-stores can be on the (pretty [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

