LLVM 22.0.0git
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 >:
[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 750 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVRewriteVisitor()

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

Definition at line 761 of file ScalarEvolutionExpressions.h.

References SE.

Member Function Documentation

◆ visit()

◆ visitAddExpr()

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

◆ visitAddRecExpr()

◆ visitConstant()

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

Definition at line 773 of file ScalarEvolutionExpressions.h.

◆ visitCouldNotCompute()

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

Definition at line 896 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 894 of file ScalarEvolutionExpressions.h.

◆ visitVScale()

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

Definition at line 775 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 758 of file ScalarEvolutionExpressions.h.

Referenced by visit().

◆ SE


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