The loop transformation techniques include:
loop normalization
loop reversal
loop interchange and permutation
loop distribution
loop fusion
scalar replacement
absence of loop-carried memory dependency with the IVDEP directive
runtime data dependencies checking (Itanium®-based systems only)
The loop transformations listed above are supported by data dependence. The loop transformation techniques also include:
induction variable elimination
constant propagation
copy propagation
forward substitution
and dead code elimination.
In addition to the loop transformations listed for both IA-32 and Itanium® architectures above, the Itanium architecture enables implementation of the collapsing techniques.