|
LLVM 22.0.0git
|
Classes | |
| struct | Argument_match |
| Match a call argument at a given argument index. More... | |
| struct | bind_apint |
| struct | bind_const_int |
| struct | bind_ty |
| struct | class_match |
| struct | Cmp_match |
| Cmp_match is a variant of BinaryRecipe_match that also binds the comparison predicate. More... | |
| struct | deferredval_ty |
| Stores a reference to the VPValue *, not the VPValue * itself, thus can be used in commutative matchers. More... | |
| struct | int_pred_ty |
| Match an integer constant or vector of constants if Pred::isValue returns true for the APInt. More... | |
| struct | IntrinsicID_match |
| Intrinsic matchers. More... | |
| struct | is_all_ones |
| struct | is_one |
| struct | is_specific_int |
| Match a specified integer value or vector of all elements of that value. More... | |
| struct | is_zero_int |
| struct | live_in_vpvalue |
| struct | Load_match |
| struct | m_Intrinsic_Ty |
| Intrinsic matches are combinations of ID matchers, and argument matchers. More... | |
| struct | m_Intrinsic_Ty< T0 > |
| struct | m_Intrinsic_Ty< T0, T1 > |
| struct | m_Intrinsic_Ty< T0, T1, T2 > |
| struct | match_combine_and |
| struct | match_combine_or |
| Matching combinators. More... | |
| struct | OneUse_match |
| struct | Recipe_match |
| struct | SpecificCmp_match |
| SpecificCmp_match is a variant of Cmp_match that matches the comparison predicate, instead of binding it. More... | |
| struct | specificval_ty |
| Match a specified VPValue. More... | |
| struct | Store_match |
| struct | VPMatchFunctor |
Typedefs | |
| template<unsigned Bitwidth = 0> | |
| using | specific_intval = int_pred_ty<is_specific_int, Bitwidth> |
| template<unsigned Opcode, typename... OpTys> | |
| using | AllRecipe_match |
| template<unsigned Opcode, typename... OpTys> | |
| using | AllRecipe_commutative_match |
| template<unsigned Opcode, typename... OpTys> | |
| using | VPInstruction_match |
| template<typename Op0_t, typename Op1_t> | |
| using | GEPLikeRecipe_match |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| using | VPScalarIVSteps_match |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| using | VPDerivedIV_match |
| template<typename Op0_t, typename Op1_t> | |
| using | VectorEndPointerRecipe_match |
Functions | |
| template<typename Val, typename Pattern> | |
| bool | match (Val *V, const Pattern &P) |
| template<typename Pattern> | |
| bool | match (VPUser *U, const Pattern &P) |
| template<typename Val = VPUser, typename Pattern> | |
| VPMatchFunctor< Val, Pattern > | match_fn (const Pattern &P) |
| A match functor that can be used as a UnaryPredicate in functional algorithms like all_of. | |
| class_match< VPValue > | m_VPValue () |
| Match an arbitrary VPValue and ignore it. | |
| specificval_ty | m_Specific (const VPValue *VPV) |
| deferredval_ty | m_Deferred (VPValue *const &V) |
| Like m_Specific(), but works if the specific value to match is determined as part of the same match() expression. | |
| specific_intval< 0 > | m_SpecificInt (uint64_t V) |
| specific_intval< 1 > | m_False () |
| specific_intval< 1 > | m_True () |
| int_pred_ty< is_all_ones > | m_AllOnes () |
| Match an integer or vector with all bits set. | |
| int_pred_ty< is_zero_int > | m_ZeroInt () |
| Match an integer 0 or a vector with all elements equal to 0. | |
| int_pred_ty< is_one > | m_One () |
| Match an integer 1 or a vector with all elements equal to 1. | |
| bind_apint | m_APInt (const APInt *&C) |
| bind_const_int | m_ConstantInt (uint64_t &C) |
| Match a plain integer constant no wider than 64-bits, capturing it if we match. | |
| template<typename LTy, typename RTy> | |
| match_combine_or< LTy, RTy > | m_CombineOr (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L || R. | |
| template<typename LTy, typename RTy> | |
| match_combine_and< LTy, RTy > | m_CombineAnd (const LTy &L, const RTy &R) |
| Combine two pattern matchers matching L && R. | |
| bind_ty< VPValue > | m_VPValue (VPValue *&V) |
| Match a VPValue, capturing it if we match. | |
| bind_ty< VPInstruction > | m_VPInstruction (VPInstruction *&V) |
| Match a VPInstruction, capturing if we match. | |
| template<unsigned Opcode, typename... OpTys> | |
| VPInstruction_match< Opcode, OpTys... > | m_VPInstruction (const OpTys &...Ops) |
| VPInstruction_match< VPInstruction::BuildVector > | m_BuildVector () |
| BuildVector is matches only its opcode, w/o matching its operands as the number of operands is not fixed. | |
| template<typename Op0_t> | |
| VPInstruction_match< Instruction::Freeze, Op0_t > | m_Freeze (const Op0_t &Op0) |
| VPInstruction_match< VPInstruction::BranchOnCond > | m_BranchOnCond () |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::BranchOnCond, Op0_t > | m_BranchOnCond (const Op0_t &Op0) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::Broadcast, Op0_t > | m_Broadcast (const Op0_t &Op0) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::ExplicitVectorLength, Op0_t > | m_EVL (const Op0_t &Op0) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::ExtractLastElement, Op0_t > | m_ExtractLastElement (const Op0_t &Op0) |
| template<typename Op0_t, typename Op1_t> | |
| VPInstruction_match< Instruction::ExtractElement, Op0_t, Op1_t > | m_ExtractElement (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::ExtractLastLanePerPart, Op0_t > | m_ExtractLastLanePerPart (const Op0_t &Op0) |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| VPInstruction_match< VPInstruction::ActiveLaneMask, Op0_t, Op1_t, Op2_t > | m_ActiveLaneMask (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
| VPInstruction_match< VPInstruction::BranchOnCount > | m_BranchOnCount () |
| template<typename Op0_t, typename Op1_t> | |
| VPInstruction_match< VPInstruction::BranchOnCount, Op0_t, Op1_t > | m_BranchOnCount (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::AnyOf, Op0_t > | m_AnyOf (const Op0_t &Op0) |
| template<typename Op0_t> | |
| VPInstruction_match< VPInstruction::FirstActiveLane, Op0_t > | m_FirstActiveLane (const Op0_t &Op0) |
| template<unsigned Opcode, typename Op0_t> | |
| AllRecipe_match< Opcode, Op0_t > | m_Unary (const Op0_t &Op0) |
| template<typename Op0_t> | |
| AllRecipe_match< Instruction::Trunc, Op0_t > | m_Trunc (const Op0_t &Op0) |
| template<typename Op0_t> | |
| AllRecipe_match< Instruction::ZExt, Op0_t > | m_ZExt (const Op0_t &Op0) |
| template<typename Op0_t> | |
| AllRecipe_match< Instruction::SExt, Op0_t > | m_SExt (const Op0_t &Op0) |
| template<typename Op0_t> | |
| match_combine_or< AllRecipe_match< Instruction::ZExt, Op0_t >, AllRecipe_match< Instruction::SExt, Op0_t > > | m_ZExtOrSExt (const Op0_t &Op0) |
| template<typename Op0_t> | |
| match_combine_or< AllRecipe_match< Instruction::ZExt, Op0_t >, Op0_t > | m_ZExtOrSelf (const Op0_t &Op0) |
| template<unsigned Opcode, typename Op0_t, typename Op1_t> | |
| AllRecipe_match< Opcode, Op0_t, Op1_t > | m_Binary (const Op0_t &Op0, const Op1_t &Op1) |
| template<unsigned Opcode, typename Op0_t, typename Op1_t> | |
| AllRecipe_commutative_match< Opcode, Op0_t, Op1_t > | m_c_Binary (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_commutative_match< Instruction::Add, Op0_t, Op1_t > | m_c_Add (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_match< Instruction::Sub, Op0_t, Op1_t > | m_Sub (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_match< Instruction::Mul, Op0_t, Op1_t > | m_Mul (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_commutative_match< Instruction::Mul, Op0_t, Op1_t > | m_c_Mul (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_commutative_match< Instruction::And, Op0_t, Op1_t > | m_c_BinaryAnd (const Op0_t &Op0, const Op1_t &Op1) |
| Match a binary AND operation. | |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_match< Instruction::Or, Op0_t, Op1_t > | m_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
| Match a binary OR operation. | |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_commutative_match< Instruction::Or, Op0_t, Op1_t > | m_c_BinaryOr (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| Cmp_match< Op0_t, Op1_t, Instruction::ICmp > | m_ICmp (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| Cmp_match< Op0_t, Op1_t, Instruction::ICmp > | m_ICmp (CmpPredicate &Pred, const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| SpecificCmp_match< Op0_t, Op1_t, Instruction::ICmp > | m_SpecificICmp (CmpPredicate MatchPred, const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| Cmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | m_Cmp (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| Cmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | m_Cmp (CmpPredicate &Pred, const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| SpecificCmp_match< Op0_t, Op1_t, Instruction::ICmp, Instruction::FCmp > | m_SpecificCmp (CmpPredicate MatchPred, const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| GEPLikeRecipe_match< Op0_t, Op1_t > | m_GetElementPtr (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| AllRecipe_match< Instruction::Select, Op0_t, Op1_t, Op2_t > | m_Select (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
| template<typename Op0_t> | |
| match_combine_or< VPInstruction_match< VPInstruction::Not, Op0_t >, AllRecipe_commutative_match< Instruction::Xor, int_pred_ty< is_all_ones >, Op0_t > > | m_Not (const Op0_t &Op0) |
| template<typename Op0_t, typename Op1_t> | |
| match_combine_or< VPInstruction_match< VPInstruction::LogicalAnd, Op0_t, Op1_t >, AllRecipe_match< Instruction::Select, Op0_t, Op1_t, specific_intval< 1 > > > | m_LogicalAnd (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t> | |
| AllRecipe_match< Instruction::Select, Op0_t, specific_intval< 1 >, Op1_t > | m_LogicalOr (const Op0_t &Op0, const Op1_t &Op1) |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| VPScalarIVSteps_match< Op0_t, Op1_t, Op2_t > | m_ScalarIVSteps (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
| template<typename Op0_t, typename Op1_t, typename Op2_t> | |
| VPDerivedIV_match< Op0_t, Op1_t, Op2_t > | m_DerivedIV (const Op0_t &Op0, const Op1_t &Op1, const Op2_t &Op2) |
| template<typename Addr_t, typename Mask_t> | |
| Load_match< Addr_t, Mask_t > | m_MaskedLoad (const Addr_t &Addr, const Mask_t &Mask) |
| Match a (possibly reversed) masked load. | |
| template<typename Addr_t, typename Val_t, typename Mask_t> | |
| Store_match< Addr_t, Val_t, Mask_t > | m_MaskedStore (const Addr_t &Addr, const Val_t &Val, const Mask_t &Mask) |
| Match a (possibly reversed) masked store. | |
| template<typename Op0_t, typename Op1_t> | |
| VectorEndPointerRecipe_match< Op0_t, Op1_t > | m_VecEndPtr (const Op0_t &Op0, const Op1_t &Op1) |
| template<unsigned OpI, typename Opnd_t> | |
| Argument_match< Opnd_t > | m_Argument (const Opnd_t &Op) |
| Match a call argument. | |
| template<Intrinsic::ID IntrID> | |
| IntrinsicID_match | m_Intrinsic () |
| Match intrinsic calls like this: m_Intrinsic<Intrinsic::fabs>(m_VPValue(X), ...) | |
| template<Intrinsic::ID IntrID, typename T0> | |
| m_Intrinsic_Ty< T0 >::Ty | m_Intrinsic (const T0 &Op0) |
| template<Intrinsic::ID IntrID, typename T0, typename T1> | |
| m_Intrinsic_Ty< T0, T1 >::Ty | m_Intrinsic (const T0 &Op0, const T1 &Op1) |
| template<Intrinsic::ID IntrID, typename T0, typename T1, typename T2> | |
| m_Intrinsic_Ty< T0, T1, T2 >::Ty | m_Intrinsic (const T0 &Op0, const T1 &Op1, const T2 &Op2) |
| template<Intrinsic::ID IntrID, typename T0, typename T1, typename T2, typename T3> | |
| m_Intrinsic_Ty< T0, T1, T2, T3 >::Ty | m_Intrinsic (const T0 &Op0, const T1 &Op1, const T2 &Op2, const T3 &Op3) |
| live_in_vpvalue | m_LiveIn () |
| template<typename T> | |
| OneUse_match< T > | m_OneUse (const T &SubPattern) |
| using llvm::VPlanPatternMatch::AllRecipe_commutative_match |
Definition at line 338 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::AllRecipe_match |
Definition at line 332 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::GEPLikeRecipe_match |
Definition at line 618 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::specific_intval = int_pred_ty<is_specific_int, Bitwidth> |
Definition at line 134 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::VectorEndPointerRecipe_match |
Definition at line 738 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::VPDerivedIV_match |
Definition at line 681 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::VPInstruction_match |
Definition at line 343 of file VPlanPatternMatch.h.
| using llvm::VPlanPatternMatch::VPScalarIVSteps_match |
Definition at line 671 of file VPlanPatternMatch.h.
|
inline |
Definition at line 406 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by llvm::vputils::isHeaderMask(), simplifyBranchConditionForVFAndUF(), and tryToReplaceALMWithWideALM().
|
inline |
Match an integer or vector with all bits set.
For vectors, this includes constants with undefined elements.
Definition at line 154 of file VPlanPatternMatch.h.
Referenced by m_Not().
|
inline |
Definition at line 422 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by llvm::vputils::getRecipesForUncountableExit().
|
inline |
Definition at line 196 of file VPlanPatternMatch.h.
References llvm::CallingConv::C.
|
inline |
Match a call argument.
Definition at line 770 of file VPlanPatternMatch.h.
Referenced by m_Intrinsic(), m_Intrinsic(), m_Intrinsic(), and m_Intrinsic().
|
inline |
Definition at line 466 of file VPlanPatternMatch.h.
Referenced by getOptimizableIVOf(), m_BinaryOr(), m_Mul(), m_Sub(), and llvm::VPlanPatternMatch::Cmp_match< Op0_t, Op1_t, Opcodes >::match().
|
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 514 of file VPlanPatternMatch.h.
References m_Binary().
Referenced by llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), and isConditionTrueViaVFAndUF().
|
inline |
Definition at line 364 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by addCanonicalIVRecipes(), llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::vputils::getRecipesForUncountableExit(), llvm::VPlanTransforms::handleUncountableEarlyExit(), hasConditionalTerminator(), llvm::VPlanTransforms::removeBranchOnConst(), simplifyBranchConditionForVFAndUF(), and tryToReplaceALMWithWideALM().
|
inline |
Definition at line 370 of file VPlanPatternMatch.h.
References m_VPInstruction().
|
inline |
Definition at line 410 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by llvm::VPlanTransforms::canonicalizeEVLLoops(), llvm::VPlanTransforms::handleMaxMinNumReductions(), hasConditionalTerminator(), and simplifyBranchConditionForVFAndUF().
|
inline |
Definition at line 416 of file VPlanPatternMatch.h.
References m_VPInstruction().
|
inline |
Definition at line 376 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by optimizeVectorInductionWidthForTCAndVFUF(), and simplifyRecipe().
|
inline |
BuildVector is matches only its opcode, w/o matching its operands as the number of operands is not fixed.
Definition at line 354 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by cloneForLane(), llvm::VPTransformState::get(), and simplifyRecipe().
|
inline |
Definition at line 479 of file VPlanPatternMatch.h.
References m_c_Binary().
|
inline |
Definition at line 473 of file VPlanPatternMatch.h.
Referenced by getOptimizableIVOf(), m_c_Add(), m_c_BinaryAnd(), m_c_BinaryOr(), m_c_Mul(), and m_Not().
|
inline |
Match a binary AND operation.
Definition at line 504 of file VPlanPatternMatch.h.
References m_c_Binary().
Referenced by simplifyRecipe().
|
inline |
Definition at line 520 of file VPlanPatternMatch.h.
References m_c_Binary().
Referenced by llvm::vputils::getRecipesForUncountableExit(), and simplifyRecipe().
|
inline |
Definition at line 497 of file VPlanPatternMatch.h.
References m_c_Binary().
|
inline |
Definition at line 605 of file VPlanPatternMatch.h.
|
inline |
Definition at line 598 of file VPlanPatternMatch.h.
|
inline |
Combine two pattern matchers matching L && R.
Definition at line 250 of file VPlanPatternMatch.h.
Referenced by m_Intrinsic(), m_Intrinsic(), m_Intrinsic(), and m_Intrinsic().
|
inline |
Combine two pattern matchers matching L || R.
Definition at line 244 of file VPlanPatternMatch.h.
Referenced by m_GetElementPtr(), m_LogicalAnd(), m_Not(), m_ZExtOrSelf(), and m_ZExtOrSExt().
|
inline |
Match a plain integer constant no wider than 64-bits, capturing it if we match.
Definition at line 217 of file VPlanPatternMatch.h.
References llvm::CallingConv::C.
|
inline |
Like m_Specific(), but works if the specific value to match is determined as part of the same match() expression.
For example: m_Mul(m_VPValue(X), m_Specific(X)) is incorrect, because m_Specific() will bind X before the pattern match starts. m_Mul(m_VPValue(X), m_Deferred(X)) is correct, and will check against whichever value m_VPValue(X) populated.
Definition at line 93 of file VPlanPatternMatch.h.
|
inline |
Definition at line 686 of file VPlanPatternMatch.h.
Referenced by simplifyRecipe().
|
inline |
Definition at line 382 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by llvm::VPlanTransforms::canonicalizeEVLLoops().
|
inline |
Definition at line 394 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by simplifyRecipe().
|
inline |
Definition at line 388 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by llvm::VPlanTransforms::addExitUsersForFirstOrderRecurrences(), optimizeLatchExitInductionUser(), and simplifyRecipe().
|
inline |
Definition at line 400 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by simplifyRecipe().
|
inline |
Definition at line 140 of file VPlanPatternMatch.h.
Referenced by m_LogicalAnd(), llvm::VPlanTransforms::removeBranchOnConst(), simplifyBlends(), and simplifyRecipe().
|
inline |
Definition at line 428 of file VPlanPatternMatch.h.
References m_VPInstruction().
Referenced by optimizeEarlyExitInductionUser().
|
inline |
Definition at line 360 of file VPlanPatternMatch.h.
References m_VPInstruction().
|
inline |
Definition at line 626 of file VPlanPatternMatch.h.
References m_CombineOr().
Referenced by getAddressAccessSCEV(), getOptimizableIVOf(), and llvm::vputils::getRecipesForUncountableExit().
|
inline |
Definition at line 585 of file VPlanPatternMatch.h.
|
inline |
Definition at line 578 of file VPlanPatternMatch.h.
|
inline |
Match intrinsic calls like this: m_Intrinsic<Intrinsic::fabs>(m_VPValue(X), ...)
Definition at line 820 of file VPlanPatternMatch.h.
Referenced by m_Intrinsic(), m_Intrinsic(), m_Intrinsic(), and m_Intrinsic().
|
inline |
Definition at line 825 of file VPlanPatternMatch.h.
References m_Argument(), m_CombineAnd(), and m_Intrinsic().
|
inline |
Definition at line 830 of file VPlanPatternMatch.h.
References m_Argument(), m_CombineAnd(), m_Intrinsic(), and T1.
|
inline |
Definition at line 837 of file VPlanPatternMatch.h.
References m_Argument(), m_CombineAnd(), m_Intrinsic(), and T1.
|
inline |
Definition at line 844 of file VPlanPatternMatch.h.
References m_Argument(), m_CombineAnd(), m_Intrinsic(), and T1.
|
inline |
Definition at line 855 of file VPlanPatternMatch.h.
Referenced by llvm::vputils::getRecipesForUncountableExit().
|
inline |
Definition at line 658 of file VPlanPatternMatch.h.
References m_CombineOr(), m_False(), m_Select(), and m_VPInstruction().
|
inline |
Definition at line 666 of file VPlanPatternMatch.h.
References m_Select(), and m_True().
|
inline |
Match a (possibly reversed) masked load.
Definition at line 707 of file VPlanPatternMatch.h.
|
inline |
Match a (possibly reversed) masked store.
Definition at line 733 of file VPlanPatternMatch.h.
|
inline |
Definition at line 490 of file VPlanPatternMatch.h.
References m_Binary().
|
inline |
Definition at line 649 of file VPlanPatternMatch.h.
References m_AllOnes(), m_c_Binary(), m_CombineOr(), and m_VPInstruction().
|
inline |
Match an integer 1 or a vector with all elements equal to 1.
For vectors, this includes constants with undefined elements.
Definition at line 174 of file VPlanPatternMatch.h.
|
inline |
Definition at line 867 of file VPlanPatternMatch.h.
References T.
|
inline |
Definition at line 676 of file VPlanPatternMatch.h.
Referenced by llvm::vputils::isHeaderMask().
|
inline |
Definition at line 640 of file VPlanPatternMatch.h.
Referenced by m_LogicalAnd(), and m_LogicalOr().
|
inline |
Definition at line 448 of file VPlanPatternMatch.h.
References m_Unary().
Referenced by m_ZExtOrSExt().
|
inline |
Definition at line 75 of file VPlanPatternMatch.h.
|
inline |
Definition at line 612 of file VPlanPatternMatch.h.
|
inline |
Definition at line 591 of file VPlanPatternMatch.h.
|
inline |
Definition at line 136 of file VPlanPatternMatch.h.
|
inline |
Definition at line 484 of file VPlanPatternMatch.h.
References m_Binary().
|
inline |
Definition at line 144 of file VPlanPatternMatch.h.
Referenced by llvm::VPlanTransforms::canonicalizeEVLLoops(), m_LogicalOr(), llvm::VPlanTransforms::removeBranchOnConst(), and simplifyRecipe().
|
inline |
Definition at line 438 of file VPlanPatternMatch.h.
References m_Unary().
|
inline |
Definition at line 433 of file VPlanPatternMatch.h.
| VectorEndPointerRecipe_match< Op0_t, Op1_t > llvm::VPlanPatternMatch::m_VecEndPtr | ( | const Op0_t & | Op0, |
| const Op1_t & | Op1 ) |
Definition at line 743 of file VPlanPatternMatch.h.
Referenced by optimizeMaskToEVL().
|
inline |
Definition at line 348 of file VPlanPatternMatch.h.
References AbstractManglingParser< Derived, Alloc >::Ops.
|
inline |
Match a VPInstruction, capturing if we match.
Definition at line 258 of file VPlanPatternMatch.h.
Referenced by llvm::VPlanTransforms::canonicalizeEVLLoops(), cloneForLane(), llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::vputils::isUniformAcrossVFsAndUFs(), m_ActiveLaneMask(), m_AnyOf(), m_BranchOnCond(), m_BranchOnCond(), m_BranchOnCount(), m_BranchOnCount(), m_Broadcast(), m_BuildVector(), m_EVL(), m_ExtractElement(), m_ExtractLastElement(), m_ExtractLastLanePerPart(), m_FirstActiveLane(), m_Freeze(), m_LogicalAnd(), m_Not(), optimizeEarlyExitInductionUser(), simplifyRecipe(), transformRecipestoEVLRecipes(), and tryToReplaceALMWithWideALM().
|
inline |
Match an arbitrary VPValue and ignore it.
Definition at line 50 of file VPlanPatternMatch.h.
Referenced by llvm::VPlanTransforms::canonicalizeEVLLoops(), cloneForLane(), llvm::VPPartialReductionRecipe::computeCost(), llvm::VPWidenSelectRecipe::computeCost(), llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::VPlanTransforms::dropPoisonGeneratingRecipes(), fixReductionScalarResumeWhenVectorizingEpilog(), getAddressAccessSCEV(), getOptimizableIVOf(), llvm::vputils::getRecipesForUncountableExit(), isConditionTrueViaVFAndUF(), llvm::vputils::isHeaderMask(), RemoveMask_match< Op0_t, Op1_t >::match(), optimizeEarlyExitInductionUser(), optimizeLatchExitInductionUser(), optimizeMaskToEVL(), llvm::VPlanTransforms::removeBranchOnConst(), removeCommonBlendMask(), simplifyBlends(), simplifyBranchConditionForVFAndUF(), simplifyRecipe(), transformRecipestoEVLRecipes(), llvm::VPlanTransforms::truncateToMinimalBitwidths(), tryToMatchAndCreateExtendedReduction(), tryToMatchAndCreateMulAccumulateReduction(), and tryToReplaceALMWithWideALM().
Match a VPValue, capturing it if we match.
Definition at line 255 of file VPlanPatternMatch.h.
|
inline |
Match an integer 0 or a vector with all elements equal to 0.
For vectors, this includes constants with undefined elements.
Definition at line 168 of file VPlanPatternMatch.h.
|
inline |
Definition at line 443 of file VPlanPatternMatch.h.
References m_Unary().
Referenced by m_ZExtOrSelf(), and m_ZExtOrSExt().
|
inline |
Definition at line 461 of file VPlanPatternMatch.h.
References m_CombineOr(), and m_ZExt().
|
inline |
Definition at line 455 of file VPlanPatternMatch.h.
References m_CombineOr(), m_SExt(), and m_ZExt().
Referenced by fixReductionScalarResumeWhenVectorizingEpilog().
| bool llvm::VPlanPatternMatch::match | ( | Val * | V, |
| const Pattern & | P ) |
Definition at line 23 of file VPlanPatternMatch.h.
References P.
Referenced by match(), and llvm::VPlanPatternMatch::VPMatchFunctor< Val, Pattern >::operator()().
Definition at line 27 of file VPlanPatternMatch.h.
References llvm::dyn_cast(), match(), and P.
| VPMatchFunctor< Val, Pattern > llvm::VPlanPatternMatch::match_fn | ( | const Pattern & | P | ) |
A match functor that can be used as a UnaryPredicate in functional algorithms like all_of.
Definition at line 41 of file VPlanPatternMatch.h.
References P.