Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Automatic recognition of induction variables and recurrence relations by abstract interpretation
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Chains of recurrences—a method to expedite the evaluation of closed-form functions
ISSAC '94 Proceedings of the international symposium on Symbolic and algebraic computation
CTADEL: a generator of multi-platform high performance codes for PDE-based scientific applications
ICS '96 Proceedings of the 10th international conference on Supercomputing
Advanced compiler design and implementation
Advanced compiler design and implementation
Efficient Symbolic Analysis for Parallelizing Compilers and Performance Estimators
The Journal of Supercomputing
Symbolic Analysis for Parallelizing Compilers
Symbolic Analysis for Parallelizing Compilers
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
Tomorrow's Weather Forecast: Automatic Code Generation for Atmospheric Modeling
IEEE Computational Science & Engineering
Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs
Proceedings of the Fourth International Workshop on Languages and Compilers for Parallel Computing
Symbolic Program Analysis and Optimization for Parallelizing Compilers
Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing
Demand-Driven, Symbolic Range Propagation
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
Recurrent Relations and Speed-up of Computations Using Computer Algebra Systems
DISCO '92 Proceedings of the International Symposium on Design and Implementation of Symbolic Computation Systems
Automatic Validation of Code-Improving Transformations
LCTES '00 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
Flow-Sensitive Loop-Variant Variable Classification in Linear Time
Languages and Compilers for Parallel Computing
Induction variable analysis with delayed abstractions
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
Synchronization-Free automatic parallelization: beyond affine iteration-space slicing
LCPC'09 Proceedings of the 22nd international conference on Languages and Compilers for Parallel Computing
Improving integer security for systems with KINT
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Hi-index | 0.00 |
Because most of the execution time of a program is typically spend in loops, loop optimization is the main target of optimizing and restructuring compilers. An accurate determination of induction variables and dependencies in loops is of paramount importance to many loop optimization and parallelization techniques, such as generalized loop strength reduction, loop parallelization by induction variable substitution, and loop-invariant expression elimination. In this paper we present a new method for induction variable recognition. Existing methods are either ad-hoc and not powerful enough to recognize some types of induction variables, or existing methods are powerful but not safe. The most powerful method known is the symbolic differencing method as demonstrated by the Parafrase-2 compiler on parallelizing the Perfect Benchmarks(R). However, symbolic differencing is inherently unsafe and a compiler that uses this method may produce incorrectly transformed programs without issuing a warning. In contrast, our method is safe, simpler to implement in a compiler, better adaptable for controlling loop transformations, and recognizes a larger class of induction variables.