Learn More
Pointer-based array traversals are often used by C programmers to optimize sequential memory access. However, the use of pointer arithmetic prevents compilers from effectively applying dependence testing and loop analysis for optimization and parallelization. Because pointer variables can be viewed as reference-type induction variables, conventional(More)
This paper presents a parametric intra-task dynamic voltage scheduling (IntraVS) method that scales volt-age/frequency based upon the parameterization of the remaining worst case exection cycles (RWEC) of a task. The parametric RWEC of the task is determined by static analysis of code. The parameterization of the RWEC of loops with symbolic bounds, whose(More)
This paper presents a new approach to dependence testing in the presence of nonlinear and non-closed array index expressions and pointer references. The chains of recurrences formalism and algebra is used to analyze the recurrence relations of induction variables, and for constructing recurrence forms of array index expressions and pointer references. We(More)
This paper presents a new approach to improve flow-sensitive induction variable analysis and data dependence testing on intermediate program representations, such as control-flow graphs with low-level operations representations in single static assignment forms. Current compiler techniques have difficulties optimizing loops that exhibit irregular control(More)
This paper presents a unified approach for generalized induction variable recognition and substitution, pointer analysis, analysis of conditionally updated variables, value range analysis, array region analysis, and nonlinear dependence testing. The analysis techniques share a well-defined uniform approach based on the chains of recurrences algebra. The(More)
Code restructuring compilers rely heavily on program analysis techniques to automatically detect data dependences between program statements. Dependences between statement instances in the iteration space of a loop nest impose ordering constraints that must be preserved in order to produce valid optimized, vectorized, and parallelized loop nests. This paper(More)
Accurate data dependence testing allows a compiler to perform safe automatic code optimization and parallelization. It has been shown that factors, such as loop variants and nonlinear expressions, limit opportunity for data dependence testing and parallelization. Recently, the NLVI-Test has been introduced as new technology to enable exact data dependence(More)
This paper presents an efficient algorithm for classifying generalized induction variables and flow-sensitive loop-variant variables that have arbitrary conditional update patterns along multiple paths in a loop nest. Variables are recognized and translated into closed-form functions, such as linear, polynomial, geometric, wrap-around, periodic, and mixer(More)
  • 1