LLVM 22.0.0git
ScalarEvolutionPatternMatch.h File Reference

Go to the source code of this file.

Classes

struct  llvm::SCEVPatternMatch::cst_pred_ty< Predicate >
struct  llvm::SCEVPatternMatch::is_zero
struct  llvm::SCEVPatternMatch::is_one
struct  llvm::SCEVPatternMatch::is_all_ones
struct  llvm::SCEVPatternMatch::class_match< Class >
struct  llvm::SCEVPatternMatch::bind_ty< Class >
struct  llvm::SCEVPatternMatch::specificscev_ty
 Match a specified const SCEV *. More...
struct  llvm::SCEVPatternMatch::is_specific_cst
struct  llvm::SCEVPatternMatch::is_specific_signed_cst
struct  llvm::SCEVPatternMatch::bind_cst_ty
struct  llvm::SCEVPatternMatch::SCEVUnaryExpr_match< SCEVTy, Op0_t >
 Match a unary SCEV. More...
struct  llvm::SCEVPatternMatch::SCEVBinaryExpr_match< SCEVTy, Op0_t, Op1_t, Commutable >
 Match a binary SCEV. More...
struct  llvm::SCEVPatternMatch::SCEVAffineAddRec_match< Op0_t, Op1_t, Loop_t >
 Match an affine SCEVAddRecExpr. More...
struct  llvm::SCEVPatternMatch::specificloop_ty
 Match a specified const Loop*. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::SCEVPatternMatch

Functions

template<typename Pattern>
bool llvm::SCEVPatternMatch::match (const SCEV *S, const Pattern &P)
cst_pred_ty< is_zerollvm::SCEVPatternMatch::m_scev_Zero ()
 Match an integer 0.
cst_pred_ty< is_onellvm::SCEVPatternMatch::m_scev_One ()
 Match an integer 1.
cst_pred_ty< is_all_onesllvm::SCEVPatternMatch::m_scev_AllOnes ()
 Match an integer with all bits set.
class_match< const SCEVllvm::SCEVPatternMatch::m_SCEV ()
class_match< const SCEVConstantllvm::SCEVPatternMatch::m_SCEVConstant ()
class_match< const SCEVVScalellvm::SCEVPatternMatch::m_SCEVVScale ()
bind_ty< const SCEVllvm::SCEVPatternMatch::m_SCEV (const SCEV *&V)
 Match a SCEV, capturing it if we match.
bind_ty< const SCEVConstantllvm::SCEVPatternMatch::m_SCEVConstant (const SCEVConstant *&V)
bind_ty< const SCEVUnknownllvm::SCEVPatternMatch::m_SCEVUnknown (const SCEVUnknown *&V)
bind_ty< const SCEVAddExprllvm::SCEVPatternMatch::m_scev_Add (const SCEVAddExpr *&V)
specificscev_ty llvm::SCEVPatternMatch::m_scev_Specific (const SCEV *S)
 Match if we have a specific specified SCEV.
cst_pred_ty< is_specific_cstllvm::SCEVPatternMatch::m_scev_SpecificInt (uint64_t V)
 Match an SCEV constant with a plain unsigned integer.
cst_pred_ty< is_specific_signed_cstllvm::SCEVPatternMatch::m_scev_SpecificSInt (int64_t V)
 Match an SCEV constant with a plain signed integer (sign-extended value will be matched)
bind_cst_ty llvm::SCEVPatternMatch::m_scev_APInt (const APInt *&C)
 Match an SCEV constant and bind it to an APInt.
template<typename SCEVTy, typename Op0_t>
SCEVUnaryExpr_match< SCEVTy, Op0_tllvm::SCEVPatternMatch::m_scev_Unary (const Op0_t &Op0)
template<typename Op0_t>
SCEVUnaryExpr_match< SCEVSignExtendExpr, Op0_tllvm::SCEVPatternMatch::m_scev_SExt (const Op0_t &Op0)
template<typename Op0_t>
SCEVUnaryExpr_match< SCEVZeroExtendExpr, Op0_tllvm::SCEVPatternMatch::m_scev_ZExt (const Op0_t &Op0)
template<typename Op0_t>
SCEVUnaryExpr_match< SCEVPtrToIntExpr, Op0_tllvm::SCEVPatternMatch::m_scev_PtrToInt (const Op0_t &Op0)
template<typename SCEVTy, typename Op0_t, typename Op1_t, bool Commutable = false>
SCEVBinaryExpr_match< SCEVTy, Op0_t, Op1_t, Commutable > llvm::SCEVPatternMatch::m_scev_Binary (const Op0_t &Op0, const Op1_t &Op1)
template<typename Op0_t, typename Op1_t>
SCEVBinaryExpr_match< SCEVAddExpr, Op0_t, Op1_tllvm::SCEVPatternMatch::m_scev_Add (const Op0_t &Op0, const Op1_t &Op1)
template<typename Op0_t, typename Op1_t>
SCEVBinaryExpr_match< SCEVMulExpr, Op0_t, Op1_tllvm::SCEVPatternMatch::m_scev_Mul (const Op0_t &Op0, const Op1_t &Op1)
template<typename Op0_t, typename Op1_t>
SCEVBinaryExpr_match< SCEVMulExpr, Op0_t, Op1_t, true > llvm::SCEVPatternMatch::m_scev_c_Mul (const Op0_t &Op0, const Op1_t &Op1)
template<typename Op0_t, typename Op1_t>
SCEVBinaryExpr_match< SCEVUDivExpr, Op0_t, Op1_tllvm::SCEVPatternMatch::m_scev_UDiv (const Op0_t &Op0, const Op1_t &Op1)
class_match< const Loopllvm::SCEVPatternMatch::m_Loop ()
specificloop_ty llvm::SCEVPatternMatch::m_SpecificLoop (const Loop *L)
bind_ty< const Loopllvm::SCEVPatternMatch::m_Loop (const Loop *&L)
template<typename Op0_t, typename Op1_t>
SCEVAffineAddRec_match< Op0_t, Op1_t, class_match< const Loop > > llvm::SCEVPatternMatch::m_scev_AffineAddRec (const Op0_t &Op0, const Op1_t &Op1)
template<typename Op0_t, typename Op1_t, typename Loop_t>
SCEVAffineAddRec_match< Op0_t, Op1_t, Loop_t > llvm::SCEVPatternMatch::m_scev_AffineAddRec (const Op0_t &Op0, const Op1_t &Op1, const Loop_t &L)