36 #ifndef LLVM_ANALYSIS_SCALAREVOLUTIONNORMALIZATION_H 37 #define LLVM_ANALYSIS_SCALAREVOLUTIONNORMALIZATION_H 46 class ScalarEvolution;
This class represents lattice values for constants.
const SCEV * normalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
Normalize S to be post-increment for all loops present in Loops.
The main scalar evolution driver.
function_ref< bool(const SCEVAddRecExpr *)> NormalizePredTy
An efficient, type-erasing, non-owning reference to a callable.
const SCEV * normalizeForPostIncUseIf(const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE)
Normalize S for all add recurrence sub-expressions for which Pred returns true.
SmallPtrSet< const Loop *, 2 > PostIncLoopSet
This class represents an analyzed expression in the program.
const SCEV * denormalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
Denormalize S to be post-increment for all loops present in Loops.