LLVM: llvm::ScalarEvolution::LoopGuards Class Reference (original) (raw)

#include "[llvm/Analysis/ScalarEvolution.h](ScalarEvolution%5F8h%5Fsource.html)"

Static Public Member Functions
static LLVM_ABI LoopGuards collect (const Loop *L, ScalarEvolution &SE)
Collect rewrite map for loop guards for loop L, together with flags indicating if NUW and NSW can be preserved during rewriting.

Definition at line 1362 of file ScalarEvolution.h.

collect()

rewrite()

Try to apply the collected loop guards to Expr.

A rewriter to replace SCEV expressions in Map with the corresponding entry in the map. It skips AddRecExpr because we cannot guarantee that the replacement is loop invariant in the loop of the AddRec.

Definition at line 15960 of file ScalarEvolution.cpp.

References llvm::Add, llvm::SmallVectorTemplateCommon< T, typename >::back(), Changed, llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNSW, llvm::SCEV::FlagNUW, llvm::IntegerType::get(), getNextSCEVDivisibleByDivisor(), llvm::SCEVNAryExpr::getNoWrapFlags(), llvm::SCEVNAryExpr::getNumOperands(), llvm::SCEVCastExpr::getOperand(), llvm::SCEVNAryExpr::getOperand(), llvm::SCEV::getType(), llvm::SCEVCastExpr::getType(), llvm::isa(), llvm::ScalarEvolution::maskFlags(), MatchBinarySub(), llvm::SCEVNAryExpr::operands(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), Rewriter, llvm::ScalarEvolution::ScalarEvolution(), llvm::ScalarEvolution::SCEVUnknown, llvm::ScalarEvolution::setFlags(), std::swap(), llvm::SCEVRewriteVisitor< SC >::visit(), llvm::SCEVRewriteVisitor< SC >::visitSignExtendExpr(), llvm::SCEVRewriteVisitor< SC >::visitSMinExpr(), llvm::SCEVRewriteVisitor< SC >::visitUMinExpr(), and llvm::SCEVRewriteVisitor< SC >::visitZeroExtendExpr().

Referenced by llvm::ScalarEvolution::applyLoopGuards().


The documentation for this class was generated from the following files: