class SCEVLoopGuardRewriter
Declaration
class SCEVLoopGuardRewriter : public SCEVRewriteVisitor { /* full declaration omitted */ };
Description
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. At the moment only rewriting SCEVUnknown and SCEVZeroExtendExpr is supported.
Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14540
Inherits from: SCEVRewriteVisitor
Member Variables
- private const DenseMap<const llvm::SCEV*, const llvm::SCEV*>& Map
Method Overview
- public SCEVLoopGuardRewriter(llvm::ScalarEvolution & SE, DenseMap<const llvm::SCEV *, const llvm::SCEV *> & M)
- public const llvm::SCEV * visitAddRecExpr(const llvm::SCEVAddRecExpr * Expr)
- public const llvm::SCEV * visitUnknown(const llvm::SCEVUnknown * Expr)
- public const llvm::SCEV * visitZeroExtendExpr(const llvm::SCEVZeroExtendExpr * Expr)
Methods
¶SCEVLoopGuardRewriter(
llvm::ScalarEvolution& SE,
DenseMap<const llvm::SCEV*,
const llvm::SCEV*>& M)
SCEVLoopGuardRewriter(
llvm::ScalarEvolution& SE,
DenseMap<const llvm::SCEV*,
const llvm::SCEV*>& M)
Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14544
Parameters
- llvm::ScalarEvolution& SE
- DenseMap<const llvm::SCEV*, const llvm::SCEV*>& M
¶const llvm::SCEV* visitAddRecExpr(
const llvm::SCEVAddRecExpr* Expr)
const llvm::SCEV* visitAddRecExpr(
const llvm::SCEVAddRecExpr* Expr)
Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14548
Parameters
- const llvm::SCEVAddRecExpr* Expr
¶const llvm::SCEV* visitUnknown(
const llvm::SCEVUnknown* Expr)
const llvm::SCEV* visitUnknown(
const llvm::SCEVUnknown* Expr)
Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14550
Parameters
- const llvm::SCEVUnknown* Expr
¶const llvm::SCEV* visitZeroExtendExpr(
const llvm::SCEVZeroExtendExpr* Expr)
const llvm::SCEV* visitZeroExtendExpr(
const llvm::SCEVZeroExtendExpr* Expr)
Declared at: llvm/lib/Analysis/ScalarEvolution.cpp:14557
Parameters
- const llvm::SCEVZeroExtendExpr* Expr