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

A rewriter to replace SCEV expressions in Map with the corresponding entry in the map. More...

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

Public Member Functions

 SCEVLoopGuardRewriter (ScalarEvolution &SE, DenseMap< const SCEV *, const SCEV * > &M)
 
const SCEVvisitAddRecExpr (const SCEVAddRecExpr *Expr)
 
const SCEVvisitUnknown (const SCEVUnknown *Expr)
 
const SCEVvisitZeroExtendExpr (const SCEVZeroExtendExpr *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 SCEVvisitSequentialUMinExpr (const SCEVSequentialUMinExpr *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

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.

Definition at line 14358 of file ScalarEvolution.cpp.

Constructor & Destructor Documentation

◆ SCEVLoopGuardRewriter()

SCEVLoopGuardRewriter::SCEVLoopGuardRewriter ( ScalarEvolution SE,
DenseMap< const SCEV *, const SCEV * > &  M 
)
inline

Definition at line 14362 of file ScalarEvolution.cpp.

References M.

Member Function Documentation

◆ visitAddRecExpr()

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

Definition at line 14366 of file ScalarEvolution.cpp.

◆ visitUnknown()

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

Definition at line 14368 of file ScalarEvolution.cpp.

References I.

◆ visitZeroExtendExpr()

const SCEV* SCEVLoopGuardRewriter::visitZeroExtendExpr ( const SCEVZeroExtendExpr Expr)
inline

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