Michael E. Wolf

Learn More
This paper proposes an algorithm that improves the locality of a loop nest by transforming the code via interchange, reversal, skewing and tiling. The loop transformation rrlgorithm is based on two concepts: a mathematical formulation of reuse and locality, and a loop transformation theory that unifies the various transforms as unimodular matrix(More)
Blocking is a well-known optimization technique for improving the effectiveness of memory hierarchies. Instead of operating on entire rows or columns of an array, blocked algorithms operate on submatrices or blocks, so that data loaded into the faster levels of the memory hierarchy are reused. This paper presents cache performance data for blocked programs(More)
The performance of modern microprocessors is greatly affected by cache behavior, instruction scheduling, register allocation and loop overhead. High level loop transformations such as fission, fusion, tiling, interchanging and outer loop unrolling (e.g., unroll and jam) are well known to be capable of improving all these aspects of performance. Difficulties(More)
We compared the relative effectiveness of rotating or translating the head, either horizontally or vertically, on the perception of depth resulting from motion parallax. Using Rogers and Graham's (1979) paradigm, we yoked the movement of random dots on a screen to movements of the head, simulating a corrugated surface. In two experiments, subjects nulled(More)
An extended record facility is described that supports multi-module records by providing:<list><item>incremental and distributed record type definition, allowing field names of a record to be declared in different modules with different subscopes relative to the root record declaration. </item><item>field-level declaration of access to records by modules(More)