Adding Operator Strength Reduction to LLVM
West, Brian N.
DateOctober 20, 2011
As part of the Platform-Aware Compilation Environment (PACE) Project1, Operator Strength Reduction (OSR)  was added to the LLVM Compiler Infrastructure Project (LLVM) as a optimization pass. The goal of the PACE Project is to construct a portable compiler that produces code capable of achieving high levels of performance on new architectures. The multi-tiered architecture of the PACE compiler included high level and low level compilation components. LLVM was the choice for the low level optimizer and code generator. The high-level components of the PACE compiler include a Polyhedral-based optimization pass. This optimization pass produces many opportunities for strength reduction. LLVM lacked a strength-reduction optimization pass2, so this is the motivation for adding the OSR optimization to LLVM.