Check out my first novel, midnight's simulacra!

Compiler Design: Difference between revisions

From dankwiki
Line 31: Line 31:


==Memory Hierarchy==
==Memory Hierarchy==
===The role of data dependence in memory optimization===
* Allen/Kennedy p.383 sums up dataflow analysis's dual nature beautifully. '''FIXME''' rip it off
* A value computed at the dependence's source (write) and used at its sink (read) is a ''true/flow dependence''
** Once brought to a lower-level memory, it can be used without refetch so long as it's preserved
* A value read prior to being recomputed is an ''antidependence''
** Can exploit sub-unit spatial dependence, primarily with cache blocks
* A value assigned, and then reassigned prior to use, is an ''output dependence''
** Restricts life of usages (provides more precise temporal locality information)
* A value read, and then read again prior to use, is an ''input dependence''
** Groups life of usages together (provides more complete temporal locality information)
===Registers===
===Registers===
* Primary references: Allen/Kennedy ch. 8, Muchnick ch. 16
* Primary references: Allen/Kennedy ch. 8, Muchnick ch. 16