LLVM 23.0.0git
llvm::PatternMatchHelpers Namespace Reference

Classes

struct  match_combine_and
 Matching and combinator leaf case. More...
struct  match_combine_and< Ty, Tys... >
 Matching and combinator. More...
struct  match_combine_or
 Matching or combinator leaf case. More...
struct  match_combine_or< Ty, Tys... >
 Matching or combinator. More...
struct  match_isa
 A match-wrapper around isa. More...

Functions

template<typename... Ty>
match_combine_or< Ty... > m_CombineOr (const Ty &...Ps)
 Combine pattern matchers matching any of Ps patterns.
template<typename... Ty>
match_combine_and< Ty... > m_CombineAnd (const Ty &...Ps)
 Combine pattern matchers matching all of Ps patterns.
template<typename... To>
match_isa< To... > m_Isa ()
template<typename... To, typename SubPattern>
auto m_Isa (const SubPattern &P)
 A variant of m_Isa that also matches SubPattern.

Function Documentation

◆ m_CombineAnd()

◆ m_CombineOr()

template<typename... Ty>
match_combine_or< Ty... > llvm::PatternMatchHelpers::m_CombineOr ( const Ty &... Ps)
inline

Combine pattern matchers matching any of Ps patterns.

Definition at line 56 of file PatternMatchHelpers.h.

Referenced by addValueAffectedByCondition(), collectUnswitchCandidates(), computeKnownBitsFromCmp(), computeKnownBitsFromLerpPattern(), llvm::ConstantFoldBinaryInstruction(), dropRedundantMaskingOfLeftShiftInput(), fixupVFUsersForEVL(), foldBoxMultiply(), llvm::InstCombinerImpl::foldICmpEquality(), foldICmpWithHighBitMask(), llvm::InstCombinerImpl::foldSelectShuffle(), foldShuffleOfUnaryOps(), foldTwoEntryPHINode(), foldVecTruncToExtElt(), slpvectorizer::BoUpSLP::LookAheadHeuristics::getShallowScore(), hasConditionalTerminator(), llvm::isCheckForZeroAndMulWithOverflow(), llvm::RecurrenceDescriptor::isFindPattern(), llvm::vputils::isHeaderMask(), isKnownMonotonic(), isKnownNonZeroFromAssume(), isMultipleOfN(), isSignificantBitCheckWellFormed(), llvm::PatternMatch::m_AddLike(), m_AnyAdd(), m_AnyMul(), llvm::VPlanPatternMatch::m_c_LogicalAnd(), llvm::PatternMatch::m_c_MaxOrMin(), llvm::VPlanPatternMatch::m_c_Select(), llvm::PatternMatch::m_CastOrSelf(), llvm::PatternMatch::m_FMaxNum_or_FMaximumNum(), llvm::PatternMatch::m_FMinNum_or_FMinimumNum(), llvm::PatternMatch::m_FPToI(), llvm::VPlanPatternMatch::m_GetElementPtr(), llvm::PatternMatch::m_IToFP(), llvm::VPlanPatternMatch::m_LogicalAnd(), llvm::PatternMatch::m_LogicalOp(), llvm::VPlanPatternMatch::m_LogicalOr(), llvm::PatternMatch::m_MaxOrMin(), llvm::VPlanPatternMatch::m_Not(), llvm::PatternMatch::m_NSWAddLike(), llvm::PatternMatch::m_NUWAddLike(), llvm::PatternMatch::m_OrdOrUnordFMax(), llvm::PatternMatch::m_OrdOrUnordFMin(), llvm::PatternMatch::m_PtrToIntOrAddr(), llvm::PatternMatch::m_SExtLike(), llvm::PatternMatch::m_SExtOrSelf(), llvm::PatternMatch::m_TruncOrSelf(), llvm::VPlanPatternMatch::m_TruncOrSelf(), llvm::VPlanPatternMatch::m_WidenAnyExtend(), llvm::PatternMatch::m_ZExtOrSelf(), llvm::VPlanPatternMatch::m_ZExtOrSelf(), llvm::PatternMatch::m_ZExtOrSExt(), llvm::VPlanPatternMatch::m_ZExtOrSExt(), llvm::PatternMatch::m_ZExtOrSExtOrSelf(), llvm::PatternMatch::m_ZExtOrTruncOrSelf(), llvm::VPlanPatternMatch::m_ZExtOrTruncOrSelf(), markAliveBlocks(), matchesSquareSum(), matchSelectPattern(), matchZExtedSubInteger(), optimizeShiftInOrChain(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), shouldCanonicalizeGEPToPtrAdd(), llvm::TargetTransformInfoImplBase::shouldTreatInstructionLikeSelect(), simplifyAndOrOfFCmps(), simplifyBranchConditionForVFAndUF(), simplifyRecipe(), simplifySelectWithICmpCond(), tryToMatchAndCreateExtendedReduction(), tryToMoveFreeBeforeNullTest(), llvm::JumpThreadingPass::tryToUnfoldSelectInCurrBB(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitTrunc().

◆ m_Isa() [1/2]

◆ m_Isa() [2/2]

template<typename... To, typename SubPattern>
auto llvm::PatternMatchHelpers::m_Isa ( const SubPattern & P)
inline

A variant of m_Isa that also matches SubPattern.

Definition at line 79 of file PatternMatchHelpers.h.

References m_CombineAnd(), m_Isa(), and P.