LLVM 20.0.0git
|
Namespaces | |
namespace | detail |
Classes | |
struct | BinaryRecipe_match |
struct | bind_ty |
struct | class_match |
struct | match_combine_or |
Matching combinators. More... | |
struct | specific_intval |
Match a specified integer value or vector of all elements of that value. More... | |
struct | UnaryRecipe_match |
struct | VPCanonicalIVPHI_match |
struct | VPScalarIVSteps_match |
Typedefs | |
template<typename Op0_t , unsigned Opcode> | |
using | UnaryVPInstruction_match = UnaryRecipe_match< Op0_t, Opcode, VPInstruction > |
template<typename Op0_t , unsigned Opcode> | |
using | AllUnaryRecipe_match = UnaryRecipe_match< Op0_t, Opcode, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction > |
template<typename Op0_t , typename Op1_t , unsigned Opcode> | |
using | BinaryVPInstruction_match = BinaryRecipe_match< Op0_t, Op1_t, Opcode, false, VPInstruction > |
template<typename Op0_t , typename Op1_t , unsigned Opcode, bool Commutative = false> | |
using | AllBinaryRecipe_match = BinaryRecipe_match< Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction > |
Functions | |
template<typename Val , typename Pattern > | |
bool | match (Val *V, const Pattern &P) |
template<typename Pattern > | |
bool | match (VPUser *U, const Pattern &P) |
class_match< VPValue > | m_VPValue () |
Match an arbitrary VPValue and ignore it. | |
specific_intval< 0 > | m_SpecificInt (uint64_t V) |
specific_intval< 1 > | m_False () |
template<typename LTy , typename RTy > | |
match_combine_or< LTy, RTy > | m_CombineOr (const LTy &L, const RTy &R) |
bind_ty< VPValue > | m_VPValue (VPValue *&V) |
Match a VPValue, capturing it if we match. | |
template<unsigned Opcode, typename Op0_t > | |
UnaryVPInstruction_match< Op0_t, Opcode > | m_VPInstruction (const Op0_t &Op0) |
template<unsigned Opcode, typename Op0_t , typename Op1_t > | |
BinaryVPInstruction_match< Op0_t, Op1_t, Opcode > | m_VPInstruction (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t > | |
UnaryVPInstruction_match< Op0_t, VPInstruction::Not > | m_Not (const Op0_t &Op0) |
template<typename Op0_t > | |
UnaryVPInstruction_match< Op0_t, VPInstruction::BranchOnCond > | m_BranchOnCond (const Op0_t &Op0) |
template<typename Op0_t , typename Op1_t > | |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::ActiveLaneMask > | m_ActiveLaneMask (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t , typename Op1_t > | |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::BranchOnCount > | m_BranchOnCount (const Op0_t &Op0, const Op1_t &Op1) |
template<unsigned Opcode, typename Op0_t > | |
AllUnaryRecipe_match< Op0_t, Opcode > | m_Unary (const Op0_t &Op0) |
template<typename Op0_t > | |
AllUnaryRecipe_match< Op0_t, Instruction::Trunc > | m_Trunc (const Op0_t &Op0) |
template<typename Op0_t > | |
AllUnaryRecipe_match< Op0_t, Instruction::ZExt > | m_ZExt (const Op0_t &Op0) |
template<typename Op0_t > | |
AllUnaryRecipe_match< Op0_t, Instruction::SExt > | m_SExt (const Op0_t &Op0) |
template<typename Op0_t > | |
match_combine_or< AllUnaryRecipe_match< Op0_t, Instruction::ZExt >, AllUnaryRecipe_match< Op0_t, Instruction::SExt > > | m_ZExtOrSExt (const Op0_t &Op0) |
template<unsigned Opcode, typename Op0_t , typename Op1_t , bool Commutative = false> | |
AllBinaryRecipe_match< Op0_t, Op1_t, Opcode, Commutative > | m_Binary (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t , typename Op1_t > | |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Mul > | m_Mul (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t , typename Op1_t > | |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Mul, true > | m_c_Mul (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t , typename Op1_t , bool Commutative = false> | |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Or, Commutative > | m_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
Match a binary OR operation. | |
template<typename Op0_t , typename Op1_t > | |
AllBinaryRecipe_match< Op0_t, Op1_t, Instruction::Or, true > | m_c_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
template<typename Op0_t , typename Op1_t > | |
BinaryVPInstruction_match< Op0_t, Op1_t, VPInstruction::LogicalAnd > | m_LogicalAnd (const Op0_t &Op0, const Op1_t &Op1) |
VPCanonicalIVPHI_match | m_CanonicalIV () |
template<typename Op0_t , typename Op1_t > | |
VPScalarIVSteps_match< Op0_t, Op1_t > | m_ScalarIVSteps (const Op0_t &Op0, const Op1_t &Op1) |
using llvm::VPlanPatternMatch::AllBinaryRecipe_match = typedef BinaryRecipe_match<Op0_t, Op1_t, Opcode, Commutative, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction> |
Definition at line 201 of file VPlanPatternMatch.h.
using llvm::VPlanPatternMatch::AllUnaryRecipe_match = typedef UnaryRecipe_match<Op0_t, Opcode, VPWidenRecipe, VPReplicateRecipe, VPWidenCastRecipe, VPInstruction> |
Definition at line 161 of file VPlanPatternMatch.h.
using llvm::VPlanPatternMatch::BinaryVPInstruction_match = typedef BinaryRecipe_match<Op0_t, Op1_t, Opcode, false, VPInstruction> |
Definition at line 195 of file VPlanPatternMatch.h.
using llvm::VPlanPatternMatch::UnaryVPInstruction_match = typedef UnaryRecipe_match<Op0_t, Opcode, VPInstruction> |
Definition at line 157 of file VPlanPatternMatch.h.
|
inline |
Definition at line 231 of file VPlanPatternMatch.h.
Referenced by llvm::vputils::isHeaderMask().
|
inline |
Definition at line 272 of file VPlanPatternMatch.h.
|
inline |
Match a binary OR operation.
Note that while conceptually the operands can be matched commutatively, Commutative
defaults to false in line with the IR-based pattern matching infrastructure. Use m_c_BinaryOr for a commutative version of the matcher.
Definition at line 295 of file VPlanPatternMatch.h.
Referenced by m_c_BinaryOr().
|
inline |
Definition at line 225 of file VPlanPatternMatch.h.
Referenced by hasConditionalTerminator().
|
inline |
Definition at line 237 of file VPlanPatternMatch.h.
Referenced by hasConditionalTerminator().
|
inline |
Definition at line 302 of file VPlanPatternMatch.h.
References m_BinaryOr().
|
inline |
Definition at line 285 of file VPlanPatternMatch.h.
|
inline |
Definition at line 321 of file VPlanPatternMatch.h.
Referenced by llvm::vputils::isHeaderMask().
|
inline |
Definition at line 107 of file VPlanPatternMatch.h.
Referenced by m_ZExtOrSExt().
|
inline |
Definition at line 88 of file VPlanPatternMatch.h.
|
inline |
Definition at line 308 of file VPlanPatternMatch.h.
|
inline |
Definition at line 278 of file VPlanPatternMatch.h.
|
inline |
Definition at line 219 of file VPlanPatternMatch.h.
|
inline |
Definition at line 346 of file VPlanPatternMatch.h.
Referenced by llvm::vputils::isHeaderMask().
|
inline |
Definition at line 258 of file VPlanPatternMatch.h.
Referenced by m_ZExtOrSExt().
|
inline |
Definition at line 84 of file VPlanPatternMatch.h.
|
inline |
Definition at line 248 of file VPlanPatternMatch.h.
|
inline |
Definition at line 242 of file VPlanPatternMatch.h.
|
inline |
Definition at line 207 of file VPlanPatternMatch.h.
|
inline |
Definition at line 213 of file VPlanPatternMatch.h.
|
inline |
Match an arbitrary VPValue and ignore it.
Definition at line 42 of file VPlanPatternMatch.h.
Referenced by hasConditionalTerminator(), and llvm::vputils::isHeaderMask().
Match a VPValue, capturing it if we match.
Definition at line 112 of file VPlanPatternMatch.h.
|
inline |
Definition at line 253 of file VPlanPatternMatch.h.
Referenced by m_ZExtOrSExt().
|
inline |
Definition at line 265 of file VPlanPatternMatch.h.
References m_CombineOr(), m_SExt(), and m_ZExt().
bool llvm::VPlanPatternMatch::match | ( | Val * | V, |
const Pattern & | P | ||
) |
Definition at line 28 of file VPlanPatternMatch.h.
Referenced by match().