LLVM  4.0.0
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 <ScalarEvolutionExpressions.h>

Inheritance diagram for llvm::SCEVRewriteVisitor< SC >:
[legend]
Collaboration diagram for llvm::SCEVRewriteVisitor< SC >:
[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 569 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

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

Definition at line 580 of file ScalarEvolutionExpressions.h.

Member Function Documentation

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

Definition at line 611 of file ScalarEvolutionExpressions.h.

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

Definition at line 630 of file ScalarEvolutionExpressions.h.

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

Definition at line 592 of file ScalarEvolutionExpressions.h.

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

Definition at line 656 of file ScalarEvolutionExpressions.h.

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

Definition at line 618 of file ScalarEvolutionExpressions.h.

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

Definition at line 606 of file ScalarEvolutionExpressions.h.

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

Definition at line 638 of file ScalarEvolutionExpressions.h.

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

Definition at line 596 of file ScalarEvolutionExpressions.h.

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

Definition at line 625 of file ScalarEvolutionExpressions.h.

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

Definition at line 645 of file ScalarEvolutionExpressions.h.

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

Definition at line 652 of file ScalarEvolutionExpressions.h.

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

Definition at line 601 of file ScalarEvolutionExpressions.h.

Member Data Documentation

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

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