Loop Tree and Induction Variables
Induction variables refer to a wide class of inductive definitions, where the sequence of values taken by a variable follows a regular pattern. The typical case is that of a loop counter. More generally, induction variables are associated with affine, geometric, or otherwise statically predictable p...
        Saved in:
      
    
          | Published in | SSA-based Compiler Design pp. 123 - 133 | 
|---|---|
| Main Authors | , | 
| Format | Book Chapter | 
| Language | English | 
| Published | 
        Cham
          Springer International Publishing
    
        2022
     | 
| Subjects | |
| Online Access | Get full text | 
| ISBN | 303080514X 9783030805142  | 
| DOI | 10.1007/978-3-030-80515-9_10 | 
Cover
| Summary: | Induction variables refer to a wide class of inductive definitions, where the sequence of values taken by a variable follows a regular pattern. The typical case is that of a loop counter. More generally, induction variables are associated with affine, geometric, or otherwise statically predictable progressions in loops. The purpose of the induction variable analysis is to provide a characterization of such sequences. There are numerous applications, from the detection of parallel loops to optimizations such as loop-invariant code motion, strength reduction, eliminating dependencies, and evaluating the number of iterations of a while loop. This chapter focuses particularly on the analysis and classification of induction variables in the presence of complex, low-level control flow (gotos, multiple loop exits, etc.). It describes the algorithm underlying the analysis of “scalar evolutions” in the GCC and LLVM compilers. | 
|---|---|
| ISBN: | 303080514X 9783030805142  | 
| DOI: | 10.1007/978-3-030-80515-9_10 |