|
LLVM 24.0.0git
|
#include "llvm/Analysis/ScalarEvolution.h"
Public Member Functions | |
| LLVM_ABI const SCEV * | rewrite (const SCEV *Expr) const |
Try to apply the collected loop guards to Expr. | |
Static Public Member Functions | |
| static LoopGuards | collectOnDemand (const Loop *L, ScalarEvolution &SE) |
Return loop guards for loop L, which are collected on first use. | |
Friends | |
| class | ScalarEvolution |
Definition at line 1580 of file ScalarEvolution.h.
|
inlinestatic |
Return loop guards for loop L, which are collected on first use.
Definition at line 1618 of file ScalarEvolution.h.
References ScalarEvolution.
Referenced by llvm::ScalarEvolution::applyLoopGuards(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::ScalarEvolution::getSmallConstantTripMultiple(), llvm::isDereferenceableAndAlignedInLoop(), and shouldPeelLastIteration().
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 16229 of file ScalarEvolution.cpp.
References llvm::Add, Changed, llvm::SCEV::FlagNone, 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::isa(), llvm::SCEVPatternMatch::m_scev_AllOnes(), llvm::ScalarEvolution::maskFlags(), llvm::SCEVPatternMatch::match(), MatchBinarySub(), Operands, llvm::SCEVNAryExpr::operands(), Rewriter, ScalarEvolution, llvm::ScalarEvolution::SCEVUnknown, llvm::ScalarEvolution::setFlags(), std::swap(), llvm::SCEVRewriteVisitor< SC >::visit(), llvm::SCEVRewriteVisitor< SC >::visitPtrToAddrExpr(), llvm::SCEVRewriteVisitor< SC >::visitSignExtendExpr(), llvm::SCEVRewriteVisitor< SC >::visitSMinExpr(), llvm::SCEVRewriteVisitor< SC >::visitUMinExpr(), and llvm::SCEVRewriteVisitor< SC >::visitZeroExtendExpr().
Referenced by llvm::ScalarEvolution::applyLoopGuards().
|
friend |
Definition at line 1592 of file ScalarEvolution.h.
References llvm::Block, llvm::Depth, and ScalarEvolution.
Referenced by collectOnDemand(), rewrite(), and ScalarEvolution.