LLVM  14.0.0git
Public Member Functions | List of all members
SCEVLoopGuardRewriter Class Reference

This rewriter is similar to SCEVParameterRewriter (it replaces SCEVUnknown components following the Map (Value -> SCEV)), but skips AddRecExpr because we cannot guarantee that the replacement is loop invariant in the loop of the AddRec. More...

Inheritance diagram for SCEVLoopGuardRewriter:
Inheritance graph
[legend]
Collaboration diagram for SCEVLoopGuardRewriter:
Collaboration graph
[legend]

Public Member Functions

 SCEVLoopGuardRewriter (ScalarEvolution &SE, ValueToSCEVMapTy &M)
 
const SCEVvisitAddRecExpr (const SCEVAddRecExpr *Expr)
 
const SCEVvisitUnknown (const SCEVUnknown *Expr)
 
- Public Member Functions inherited from llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >
 SCEVRewriteVisitor (ScalarEvolution &SE)
 
const SCEVvisit (const SCEV *S)
 
const SCEVvisitConstant (const SCEVConstant *Constant)
 
const SCEVvisitPtrToIntExpr (const SCEVPtrToIntExpr *Expr)
 
const SCEVvisitTruncateExpr (const SCEVTruncateExpr *Expr)
 
const SCEVvisitZeroExtendExpr (const SCEVZeroExtendExpr *Expr)
 
const SCEVvisitSignExtendExpr (const SCEVSignExtendExpr *Expr)
 
const SCEVvisitAddExpr (const SCEVAddExpr *Expr)
 
const SCEVvisitMulExpr (const SCEVMulExpr *Expr)
 
const SCEVvisitUDivExpr (const SCEVUDivExpr *Expr)
 
const SCEVvisitAddRecExpr (const SCEVAddRecExpr *Expr)
 
const SCEVvisitSMaxExpr (const SCEVSMaxExpr *Expr)
 
const SCEVvisitUMaxExpr (const SCEVUMaxExpr *Expr)
 
const SCEVvisitSMinExpr (const SCEVSMinExpr *Expr)
 
const SCEVvisitUMinExpr (const SCEVUMinExpr *Expr)
 
const SCEVvisitUnknown (const SCEVUnknown *Expr)
 
const SCEVvisitCouldNotCompute (const SCEVCouldNotCompute *Expr)
 
- Public Member Functions inherited from llvm::SCEVVisitor< SCEVLoopGuardRewriter, const SCEV * >
const SCEVvisit (const SCEV *S)
 
const SCEVvisitCouldNotCompute (const SCEVCouldNotCompute *S)
 

Additional Inherited Members

- Protected Attributes inherited from llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >
ScalarEvolutionSE
 
DenseMap< const SCEV *, const SCEV * > RewriteResults
 

Detailed Description

This rewriter is similar to SCEVParameterRewriter (it replaces SCEVUnknown components following the Map (Value -> SCEV)), but skips AddRecExpr because we cannot guarantee that the replacement is loop invariant in the loop of the AddRec.

Definition at line 13904 of file ScalarEvolution.cpp.

Constructor & Destructor Documentation

◆ SCEVLoopGuardRewriter()

SCEVLoopGuardRewriter::SCEVLoopGuardRewriter ( ScalarEvolution SE,
ValueToSCEVMapTy M 
)
inline

Definition at line 13908 of file ScalarEvolution.cpp.

References M.

Member Function Documentation

◆ visitAddRecExpr()

const SCEV* SCEVLoopGuardRewriter::visitAddRecExpr ( const SCEVAddRecExpr Expr)
inline

Definition at line 13911 of file ScalarEvolution.cpp.

◆ visitUnknown()

const SCEV* SCEVLoopGuardRewriter::visitUnknown ( const SCEVUnknown Expr)
inline

Definition at line 13913 of file ScalarEvolution.cpp.

References llvm::SCEVUnknown::getValue(), and I.


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