LLVM 20.0.0git
|
#include "llvm/Analysis/ScalarEvolution.h"
Public Member Functions | |
const SCEV * | rewrite (const SCEV *Expr) const |
Try to apply the collected loop guards to Expr . | |
Static Public Member Functions | |
static 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 1312 of file ScalarEvolution.h.
|
static |
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 15321 of file ScalarEvolution.cpp.
Referenced by llvm::ScalarEvolution::applyLoopGuards().
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 15841 of file ScalarEvolution.cpp.
References llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNSW, llvm::SCEV::FlagNUW, llvm::IntegerType::get(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getContext(), llvm::ScalarEvolution::getMulExpr(), llvm::SCEVNAryExpr::getNoWrapFlags(), llvm::SCEVCastExpr::getOperand(), llvm::Type::getScalarSizeInBits(), llvm::SCEVCastExpr::getType(), llvm::ScalarEvolution::getZeroExtendExpr(), I, llvm::ScalarEvolution::maskFlags(), llvm::SCEVNAryExpr::operands(), Operands, Rewriter, llvm::ScalarEvolution::setFlags(), llvm::SCEVRewriteVisitor< SC >::visitSignExtendExpr(), llvm::SCEVRewriteVisitor< SC >::visitSMinExpr(), llvm::SCEVRewriteVisitor< SC >::visitUMinExpr(), and llvm::SCEVRewriteVisitor< SC >::visitZeroExtendExpr().
Referenced by llvm::ScalarEvolution::applyLoopGuards().