Phases and Transformations
PIPS: Phases and Transformations
This page contains a very brief description of PIPS analysis and transformation phases. For more information, see the corresponding technical pages when they exist.
InitializerCreates the undelying data base and splits the program into modules corresponding to the different subroutines or functions.
ParserProduces the abstract syntax tree of each module.
ControlizerComputes the hierarchical control flow graph of the current module.
CallgraphInterprocedural control flow graph: for each module, computes its callers.
EffectsThe effects describe the memory operations of instructions. PIPS distinguishes WRITE and READ effects, as well as MAY and MUST effects. Effects on array elements are handled as effects on the whole array. Three types of effect are computed in PIPS:
- Proper effects describe the local references of an instructions. For an assignment, they contain all the variables used or defined. For a loop, they only describe the effects on the loop index, on the loop bounds, and on the increment.
- Cumulated effects are a summary of the effects of a complex statement and of its sub-statements.
- Summary effects of a subroutine are the cumulated effects of its body, from which local variables have been eliminated; these effects are used at call sites in order to obtain the proper effects, after translating the formal parameters into real ones.
TransformersTransformers abstract the effects of intructions or procedures upon the values of integer scalar variables by giving the affine relations that exist between their values before and after the execution of a statement or procedure call. They are propagated bottom-up.
PreconditionsPreconditions are predicate over integer scalar variables. They hold just before the execution of the corresponding instruction or procedure. They are propagated top-down.
ChainsComputes use-def chains, using either effects or regions.
Static control verificationVerifies if the input program is a static control program. Pre-requisite to the computation of the Array DFG.
Array data flow graphÀ la Feautrier array data flow graph.
Dead code elimination
High Performance Fortran Compilersee HPFC
Back to PIPS page.