Anonymous

Compiler Design: Difference between revisions

From dankwiki
376 bytes added ,  03:51, 29 April 2009
m
Line 39: Line 39:
* Loop blocking/tiling/strip-mining -- breaking out subloops to work on a cache-friendly block at once
* Loop blocking/tiling/strip-mining -- breaking out subloops to work on a cache-friendly block at once
** Especially good for parallelizing across coherent processing elements with local, coherent caches -- coherency traffic is minimized
** Especially good for parallelizing across coherent processing elements with local, coherent caches -- coherency traffic is minimized
* Loop safety is closed under blocking operations, but not necessarily under interchange.
** Blocking can, in some cases, make subsequent interchange safe! "If the strip size is less than or equal to the threshold of the dependence that might prevent interchange, then the strip-mine-and-interchange is legal, even though the interchange would not be." (Allen/Kennedy p. 480)


==See Also==
==See Also==
* [http://scienceblogs.com/goodmath/2007/10/computing_strongly_connected_c.php Computing Strongly Connected Subgraphs] from [http://scienceblogs.com/goodmath Good Math, Bad Math]
* [http://scienceblogs.com/goodmath/2007/10/computing_strongly_connected_c.php Computing Strongly Connected Subgraphs] from [http://scienceblogs.com/goodmath Good Math, Bad Math]
* The [http://llvm.org/ LLVM] Compiler Infrastructure Project at [http://www.cs.uiuc.edu/ UIUC]
* The [http://llvm.org/ LLVM] Compiler Infrastructure Project at [http://www.cs.uiuc.edu/ UIUC]