Item Details

Print View

Data-Specific Optimizations

Jinturkar, Sanjay
Thesis/Dissertation; Online
Jinturkar, Sanjay
Martin, Worthy
Optimizing compilers capable of producing efficient code play an important role in improving the performance of computer systems. A comprehensive suite of code optimizations applied to unoptimized code can often yield a significant reduction in execution time. However, the ability of a compiler to apply code optimizations is often limited due to the unavailability or inaccuracy of compile-time information about the operands in a source program. In absence of requisite information, the compiler forgoes an opportunity to apply an optimization so that the semantics of the program are not jeopardized. This thesis proposes and analyses a set of code optimization techniques called data-specific optimizations, which use information available at program execution time. These techniques are practical to implement and provide substantial performance increase without any additional hardware. This thesis describes data-specific optimizations related to three areas 1) optimization to minimize control dependences (loop unrolling) 2) optimization to exploit memory bandwidth (memory-access coalescing) and 3) optimization to exploit instruction-level parallelism. The thesis shows that aggressive loop unrolling can improve the performance of programs by approximately 10 percent. It also shows that when loop unrolling is used to facilitate memory-access coalescing, the memory loads and stores in a program can be reduced by as much as 225%. Also, when loop unrolling is applied in conjunction with dynamic memory disambiguation, the instruction-level parallelism in loops can be increased by as much as 300 percent.
University of Virginia, Department of Computer Science, PHD (Doctor of Philosophy), 1996
Published Date
PHD (Doctor of Philosophy)
Libra ETD Repository
In CopyrightIn Copyright
▾See more
▴See less


Read Online