Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Strength Reduction of Integer Division and Modulo Saman Amarasinghe, Walter Lee, Ben Greenwald \Lambda

Summary: Strength Reduction of Integer Division and Modulo
Saman Amarasinghe, Walter Lee, Ben Greenwald \Lambda
M.I.T. Laboratory for Computer Science
Cambridge, MA 02139, U.S.A.
Integer division, modulo, and remainder operations are expressive and useful operations. They are logical
candidates to express many complex data accesses such as the wrap­around behavior in queues using ring buffers
and array address calculations in data distribution and cache locality compiler­optimizations. Experienced appli­
cation 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 analagous to strength reduction techiques used for multiplications. In addition to
some algebraic simplifications, we present a set of optimization techniques which eliminates division and modulo
operations that are functions of loop induction variables and loop constants. The optimizations rely on number
theory, integer programming and loop transformations.
1 Introduction


Source: Amarasinghe, Saman - Computer Science and Artificial Intelligence Laboratory & Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology (MIT)


Collections: Computer Technologies and Information Sciences