35#ifndef LLVM_ANALYSIS_SCALAREVOLUTIONNORMALIZATION_H
36#define LLVM_ANALYSIS_SCALAREVOLUTIONNORMALIZATION_H
57 bool CheckInvertible =
true);
This file defines the SmallPtrSet class.
This node represents a polynomial recurrence on the trip count of the specified loop.
This class represents an analyzed expression in the program.
The main scalar evolution driver.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements.
An efficient, type-erasing, non-owning reference to a callable.
This is an optimization pass for GlobalISel generic memory operations.
const SCEV * denormalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE)
Denormalize S to be post-increment for all loops present in Loops.
function_ref< bool(const SCEVAddRecExpr *)> NormalizePredTy
const SCEV * normalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE, bool CheckInvertible=true)
Normalize S to be post-increment for all loops present in Loops.
SmallPtrSet< const Loop *, 2 > PostIncLoopSet
const SCEV * normalizeForPostIncUseIf(const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE)
Normalize S for all add recurrence sub-expressions for which Pred returns true.