Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
|
 |
Strength Reduction of Integer Division and Modulo Operations
| |
|
Strength Reduction of Integer Division and Modulo Operations
Jeffrey Sheldon5, Walter Lee5, Ben Greenwald5 and Saman Amarasinghe5
| (5) |
M.I.T. Laboratory for Computer Science, USA |
Abstract
Integer division, modulo, and remainder operations are expressive and useful operations. They are logical candidates to express
complex data accesses such as the wrap-around behavior in queues using ring buffers. In addition, they appear frequently in
address computations as a result of compiler optimizations that improve data locality, perform data distribution, or enable
parallelization. Experienced application programmers, however, avoid them because they are slow. Furthermore, while advances
in both hardware and software have improved the performance of many parts of a program, few are applicable to division and
modulo operations. This trend makes these operations increasingly detrimental to program performance.
This paper describes a suite of optimizations for eliminating division, modulo, and remainder operations from programs. These
techniques are analogous to strength reduction techniques used for multiplications. In addition to some algebraic simplifications,
we present a set of optimization techniques that eliminates division and modulo operations that are functions of loop induction
variables and loop constants. The optimizations rely on algebra, integer programming, and loop transformations.
This research is funded in part by Darpa contract # DABT63-96-C-0036 and in part by an IBM Research Fellowship.
Fulltext Preview (Small, Large)
 References secured to subscribers.
|
|
|
|
|
|