Check out my first novel, midnight's simulacra!

Compiler Design: Difference between revisions

From dankwiki
Line 35: Line 35:
* Primary references: Allen/Kennedy ch. 9, Muchnick ch. 20. See also [[Architecture#Caches|Caches]] on the [[Architecture]] page.
* Primary references: Allen/Kennedy ch. 9, Muchnick ch. 20. See also [[Architecture#Caches|Caches]] on the [[Architecture]] page.
* The benefits of spatial locality can now be taken advantage of at the more natural word level.
* The benefits of spatial locality can now be taken advantage of at the more natural word level.
* Loop interchange
* Loop interchange -- are we striding through nested loops optimally? If not, we can interchange levels, provided all dependencies are preserved. Especially powerful when combined with hardware- or software-based prefetching and further augmented with non-blocking caches.
** This can be valuable enough that we perform small transformations to accommodate it: loop alignment, loop peeling, etc


==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]