Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form
ACM Transactions on Programming Languages and Systems (TOPLAS)
MediaBench: a tool for evaluating and synthesizing multimedia and communicatons systems
MICRO 30 Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture
Interprocedural Induction Variable Analysis
ISPAN '02 Proceedings of the 2002 International Symposium on Parallel Architectures, Algorithms and Networks
A unified framework for nonlinear dependence testing and symbolic analysis
Proceedings of the 18th annual international conference on Supercomputing
Hi-index | 0.00 |
The induction variable analysis is a fundamental component of loop optimizations in compilers. Algorithms in literature and implementations in free-source compilers such as GCC and LLVM rely on SSA form IR. However, only the uses of scalar stack variables whose address is not taken are replaced with a single definition in the SSA form IR. In this paper, we describe how Interprocedural SSA (ISSA) form IR can be leveraged to extend the induction variable analysis interprocedurally to: globals, singleton heap variables, record elements, and files. We implemented our induction variable analysis and compared it against the LLVM infrastructure for a set of MediaBench and SPEC2K benchmarks. We observed an average increase of 8.1% and 58.4% in the number of polynomial and monotonic induction variables, respectively. Furthermore, due to ISSA form IR and our induction variable analysis we computed 1.02 times more constant tripcounts and 2.06 times more loop invariant tripcounts.