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 |