LLVM  8.0.1
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]
Collaboration diagram for llvm::SCEVRewriteVisitor< SC >:
Collaboration graph
[legend]

Public Member Functions

 SCEVRewriteVisitor (ScalarEvolution &SE)
 
const SCEVvisit (const SCEV *S)
 
const SCEVvisitConstant (const SCEVConstant *Constant)
 
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 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
 
DenseMap< 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 577 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVRewriteVisitor()

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

Definition at line 588 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

Definition at line 625 of file ScalarEvolutionExpressions.h.

◆ visitAddRecExpr()

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

Definition at line 652 of file ScalarEvolutionExpressions.h.

◆ visitConstant()

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

Definition at line 600 of file ScalarEvolutionExpressions.h.

◆ visitCouldNotCompute()

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

Definition at line 688 of file ScalarEvolutionExpressions.h.

◆ visitMulExpr()

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

Definition at line 635 of file ScalarEvolutionExpressions.h.

◆ visitSignExtendExpr()

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

Definition at line 618 of file ScalarEvolutionExpressions.h.

◆ visitSMaxExpr()

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

Definition at line 664 of file ScalarEvolutionExpressions.h.

◆ visitTruncateExpr()

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

Definition at line 604 of file ScalarEvolutionExpressions.h.

◆ visitUDivExpr()

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

Definition at line 645 of file ScalarEvolutionExpressions.h.

◆ visitUMaxExpr()

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

Definition at line 674 of file ScalarEvolutionExpressions.h.

◆ visitUnknown()

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

Definition at line 684 of file ScalarEvolutionExpressions.h.

◆ visitZeroExtendExpr()

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

Definition at line 611 of file ScalarEvolutionExpressions.h.

Member Data Documentation

◆ RewriteResults

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

Definition at line 585 of file ScalarEvolutionExpressions.h.

◆ SE

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

Definition at line 579 of file ScalarEvolutionExpressions.h.


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