LLVM 20.0.0git
Public Member Functions | Protected Attributes | List of all members
llvm::SCEVRewriteVisitor< SC > Class Template Reference

This visitor recursively visits a SCEV expression and re-writes it. More...

#include "llvm/Analysis/ScalarEvolutionExpressions.h"

Inheritance diagram for llvm::SCEVRewriteVisitor< SC >:
Inheritance graph
[legend]

Public Member Functions

 SCEVRewriteVisitor (ScalarEvolution &SE)
 
const SCEVvisit (const SCEV *S)
 
const SCEVvisitConstant (const SCEVConstant *Constant)
 
const SCEVvisitVScale (const SCEVVScale *VScale)
 
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< SC, const SCEV * >
const SCEVvisit (const SCEV *S)
 
const SCEVvisitCouldNotCompute (const SCEVCouldNotCompute *S)
 

Protected Attributes

ScalarEvolutionSE
 
SmallDenseMap< const SCEV *, const SCEV * > RewriteResults
 

Detailed Description

template<typename SC>
class llvm::SCEVRewriteVisitor< SC >

This visitor recursively visits a SCEV expression and re-writes it.

The result from each visit is cached, so it will return the same SCEV for the same input.

Definition at line 746 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVRewriteVisitor()

template<typename SC >
llvm::SCEVRewriteVisitor< SC >::SCEVRewriteVisitor ( ScalarEvolution SE)
inline

Definition at line 757 of file ScalarEvolutionExpressions.h.

Member Function Documentation

◆ visit()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visit ( const SCEV S)
inline

◆ visitAddExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitAddExpr ( const SCEVAddExpr Expr)
inline

◆ visitAddRecExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitAddRecExpr ( const SCEVAddRecExpr Expr)
inline

◆ visitConstant()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitConstant ( const SCEVConstant Constant)
inline

Definition at line 769 of file ScalarEvolutionExpressions.h.

◆ visitCouldNotCompute()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitCouldNotCompute ( const SCEVCouldNotCompute Expr)
inline

Definition at line 892 of file ScalarEvolutionExpressions.h.

◆ visitMulExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitMulExpr ( const SCEVMulExpr Expr)
inline

◆ visitPtrToIntExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitPtrToIntExpr ( const SCEVPtrToIntExpr Expr)
inline

◆ visitSequentialUMinExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitSequentialUMinExpr ( const SCEVSequentialUMinExpr Expr)
inline

◆ visitSignExtendExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitSignExtendExpr ( const SCEVSignExtendExpr Expr)
inline

◆ visitSMaxExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitSMaxExpr ( const SCEVSMaxExpr Expr)
inline

◆ visitSMinExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitSMinExpr ( const SCEVSMinExpr Expr)
inline

◆ visitTruncateExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitTruncateExpr ( const SCEVTruncateExpr Expr)
inline

◆ visitUDivExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitUDivExpr ( const SCEVUDivExpr Expr)
inline

◆ visitUMaxExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitUMaxExpr ( const SCEVUMaxExpr Expr)
inline

◆ visitUMinExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitUMinExpr ( const SCEVUMinExpr Expr)
inline

◆ visitUnknown()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitUnknown ( const SCEVUnknown Expr)
inline

Definition at line 890 of file ScalarEvolutionExpressions.h.

◆ visitVScale()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitVScale ( const SCEVVScale VScale)
inline

Definition at line 771 of file ScalarEvolutionExpressions.h.

◆ visitZeroExtendExpr()

template<typename SC >
const SCEV * llvm::SCEVRewriteVisitor< SC >::visitZeroExtendExpr ( const SCEVZeroExtendExpr Expr)
inline

Member Data Documentation

◆ RewriteResults

template<typename SC >
SmallDenseMap<const SCEV *, const SCEV *> llvm::SCEVRewriteVisitor< SC >::RewriteResults
protected

Definition at line 754 of file ScalarEvolutionExpressions.h.

Referenced by llvm::SCEVRewriteVisitor< SC >::visit().

◆ SE

template<typename SC >
ScalarEvolution& llvm::SCEVRewriteVisitor< SC >::SE
protected

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