LLVM 20.0.0git
Classes | Functions
llvm::SCEVPatternMatch Namespace Reference

Classes

struct  bind_ty
 
struct  class_match
 
struct  cst_pred_ty
 
struct  is_all_ones
 
struct  is_one
 
struct  is_zero
 
struct  SCEVBinaryExpr_match
 Match a binary SCEV. More...
 
struct  SCEVUnaryExpr_match
 Match a unary SCEV. More...
 
struct  specificscev_ty
 Match a specified const SCEV *. More...
 

Functions

template<typename Val , typename Pattern >
bool match (const SCEV *S, const Pattern &P)
 
cst_pred_ty< is_zerom_scev_Zero ()
 Match an integer 0.
 
cst_pred_ty< is_onem_scev_One ()
 Match an integer 1.
 
cst_pred_ty< is_all_onesm_scev_AllOnes ()
 Match an integer with all bits set.
 
bind_ty< const SCEVm_SCEV (const SCEV *&V)
 Match a SCEV, capturing it if we match.
 
bind_ty< const SCEVConstantm_SCEVConstant (const SCEVConstant *&V)
 
bind_ty< const SCEVUnknownm_SCEVUnknown (const SCEVUnknown *&V)
 
specificscev_ty m_Specific (const SCEV *S)
 Match if we have a specific specified SCEV.
 
template<typename SCEVTy , typename Op0_t >
SCEVUnaryExpr_match< SCEVTy, Op0_t > m_scev_Unary (const Op0_t &Op0)
 
template<typename Op0_t >
SCEVUnaryExpr_match< SCEVSignExtendExpr, Op0_t > m_scev_SExt (const Op0_t &Op0)
 
template<typename Op0_t >
SCEVUnaryExpr_match< SCEVZeroExtendExpr, Op0_t > m_scev_ZExt (const Op0_t &Op0)
 
template<typename SCEVTy , typename Op0_t , typename Op1_t >
SCEVBinaryExpr_match< SCEVTy, Op0_t, Op1_t > m_scev_Binary (const Op0_t &Op0, const Op1_t &Op1)
 
template<typename Op0_t , typename Op1_t >
SCEVBinaryExpr_match< SCEVAddExpr, Op0_t, Op1_t > m_scev_Add (const Op0_t &Op0, const Op1_t &Op1)
 

Function Documentation

◆ m_SCEV()

bind_ty< const SCEV > llvm::SCEVPatternMatch::m_SCEV ( const SCEV *&  V)
inline

Match a SCEV, capturing it if we match.

Definition at line 74 of file ScalarEvolutionPatternMatch.h.

Referenced by isKnownPredicateExtendIdiom().

◆ m_scev_Add()

template<typename Op0_t , typename Op1_t >
SCEVBinaryExpr_match< SCEVAddExpr, Op0_t, Op1_t > llvm::SCEVPatternMatch::m_scev_Add ( const Op0_t &  Op0,
const Op1_t &  Op1 
)
inline

Definition at line 146 of file ScalarEvolutionPatternMatch.h.

◆ m_scev_AllOnes()

cst_pred_ty< is_all_ones > llvm::SCEVPatternMatch::m_scev_AllOnes ( )
inline

Match an integer with all bits set.

Definition at line 51 of file ScalarEvolutionPatternMatch.h.

Referenced by llvm::SCEV::isAllOnesValue().

◆ m_scev_Binary()

template<typename SCEVTy , typename Op0_t , typename Op1_t >
SCEVBinaryExpr_match< SCEVTy, Op0_t, Op1_t > llvm::SCEVPatternMatch::m_scev_Binary ( const Op0_t &  Op0,
const Op1_t &  Op1 
)
inline

Definition at line 140 of file ScalarEvolutionPatternMatch.h.

◆ m_scev_One()

cst_pred_ty< is_one > llvm::SCEVPatternMatch::m_scev_One ( )
inline

Match an integer 1.

Definition at line 45 of file ScalarEvolutionPatternMatch.h.

Referenced by llvm::SCEV::isOne().

◆ m_scev_SExt()

template<typename Op0_t >
SCEVUnaryExpr_match< SCEVSignExtendExpr, Op0_t > llvm::SCEVPatternMatch::m_scev_SExt ( const Op0_t &  Op0)
inline

Definition at line 113 of file ScalarEvolutionPatternMatch.h.

Referenced by isKnownPredicateExtendIdiom().

◆ m_scev_Unary()

template<typename SCEVTy , typename Op0_t >
SCEVUnaryExpr_match< SCEVTy, Op0_t > llvm::SCEVPatternMatch::m_scev_Unary ( const Op0_t &  Op0)
inline

Definition at line 107 of file ScalarEvolutionPatternMatch.h.

◆ m_scev_Zero()

cst_pred_ty< is_zero > llvm::SCEVPatternMatch::m_scev_Zero ( )
inline

Match an integer 0.

Definition at line 39 of file ScalarEvolutionPatternMatch.h.

Referenced by llvm::ScalarEvolution::getUDivExpr(), and llvm::SCEV::isZero().

◆ m_scev_ZExt()

template<typename Op0_t >
SCEVUnaryExpr_match< SCEVZeroExtendExpr, Op0_t > llvm::SCEVPatternMatch::m_scev_ZExt ( const Op0_t &  Op0)
inline

Definition at line 119 of file ScalarEvolutionPatternMatch.h.

Referenced by isKnownPredicateExtendIdiom().

◆ m_SCEVConstant()

bind_ty< const SCEVConstant > llvm::SCEVPatternMatch::m_SCEVConstant ( const SCEVConstant *&  V)
inline

Definition at line 75 of file ScalarEvolutionPatternMatch.h.

◆ m_SCEVUnknown()

bind_ty< const SCEVUnknown > llvm::SCEVPatternMatch::m_SCEVUnknown ( const SCEVUnknown *&  V)
inline

Definition at line 78 of file ScalarEvolutionPatternMatch.h.

◆ m_Specific()

specificscev_ty llvm::SCEVPatternMatch::m_Specific ( const SCEV S)
inline

Match if we have a specific specified SCEV.

Definition at line 92 of file ScalarEvolutionPatternMatch.h.

◆ match()

template<typename Val , typename Pattern >
bool llvm::SCEVPatternMatch::match ( const SCEV S,
const Pattern P 
)

Definition at line 22 of file ScalarEvolutionPatternMatch.h.

References P.