|
LLVM 24.0.0git
|
Classes | |
| struct | bind_cst_ty |
| struct | cst_pred_ty |
| struct | is_all_ones |
| struct | is_one |
| struct | is_specific_cst |
| struct | is_specific_signed_cst |
| struct | is_undef_or_poison |
| struct | is_zero |
| struct | SCEVAffineAddRec_match |
| Match an affine SCEVAddRecExpr. More... | |
| struct | SCEVBinaryExpr_match |
| Match a binary SCEV. More... | |
| struct | SCEVUnaryExpr_match |
| Match a unary SCEV. More... | |
| struct | SCEVURem_match |
| Match unsigned remainder pattern. More... | |
| struct | specificloop_ty |
| Match a specified const Loop*. More... | |
| struct | specificscev_ty |
| Match a specified const SCEV *. More... | |
|
inline |
Definition at line 363 of file ScalarEvolutionPatternMatch.h.
References llvm::PatternMatchHelpers::m_Isa().
Referenced by DoInitialMatch(), llvm::ScalarEvolution::getSignExtendExprImpl(), llvm::ScalarEvolution::getZeroExtendExprImpl(), IsKnownPredicateViaAddRecStart(), and m_scev_AffineAddRec().
|
inline |
Definition at line 390 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 81 of file ScalarEvolutionPatternMatch.h.
References llvm::PatternMatchHelpers::m_Isa().
Referenced by llvm::canPeelLastIteration(), collectDivisibilityInformation(), CollectSubexprs(), llvm::ScalarEvolution::computeConstantDifference(), llvm::VPlanTransforms::convertToStridedAccesses(), DoInitialMatch(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), llvm::ScalarEvolution::getSignExtendExprImpl(), getStepDirection(), getStrideFromPointer(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::vputils::isAddressSCEVForCost(), isBigEndianBitShift(), isDivisibilityGuard(), isHighCostExpansion(), llvm::InductionDescriptor::isInductionPHI(), isKnownPredicateExtendIdiom(), IsKnownPredicateViaAddRecStart(), isLoopCounter(), llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match(), MatchBinarySub(), MatchNotExpr(), mayUsePostIncMode(), llvm::VPlanTransforms::optimizeFindIVReductions(), optimizeLatchExitIVUserViaSCEV(), llvm::LoopVectorizationPlanner::selectBestEpiloguePlan(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Match a SCEV, capturing it if we match.
Definition at line 86 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 89 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 236 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
|
inline |
Definition at line 99 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match(), MatchBinarySub(), MatchNotExpr(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Definition at line 394 of file ScalarEvolutionPatternMatch.h.
References m_Loop().
Referenced by llvm::canPeelLastIteration(), CollectSubexprs(), llvm::VPlanTransforms::convertToStridedAccesses(), DoInitialMatch(), llvm::ScalarEvolution::getSignExtendExprImpl(), getStepDirection(), getStrideFromPointer(), llvm::ScalarEvolution::getZeroExtendExprImpl(), llvm::vputils::isAddressSCEVForCost(), llvm::InductionDescriptor::isInductionPHI(), IsKnownPredicateViaAddRecStart(), isLoopCounter(), mayUsePostIncMode(), llvm::VPlanTransforms::optimizeFindIVReductions(), and optimizeLatchExitIVUserViaSCEV().
|
inline |
Definition at line 401 of file ScalarEvolutionPatternMatch.h.
|
inline |
Match an integer with all bits set.
Definition at line 77 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::SCEV::isAllOnesValue(), MatchBinarySub(), MatchNotExpr(), and llvm::ScalarEvolution::LoopGuards::rewrite().
|
inline |
Match an SCEV constant and bind it to an APInt.
Definition at line 157 of file ScalarEvolutionPatternMatch.h.
References C().
Referenced by canFoldIVIncExpr(), llvm::ScalarEvolution::computeConstantDifference(), ExtractImmediateOperand(), getNextSCEVDivisibleByDivisor(), getPreviousSCEVDivisibleByDivisor(), getSmallConstantTripCount(), llvm::getStrideFromAddRec(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), mayLoopAccessLocation(), llvm::VPlanTransforms::replaceSymbolicStrides(), and llvm::VPlanTransforms::simplifyLiveInsWithSCEV().
|
inline |
Definition at line 229 of file ScalarEvolutionPatternMatch.h.
Referenced by m_scev_Add(), m_scev_c_Mul(), m_scev_c_NUWMul(), m_scev_MinMax(), m_scev_Mul(), m_scev_SMax(), m_scev_UDiv(), and m_scev_UMax().
|
inline |
Definition at line 248 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
Referenced by llvm::LoopVectorizationPlanner::selectBestEpiloguePlan(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Definition at line 255 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
Referenced by llvm::ScalarEvolution::getUDivExpr().
|
inline |
Definition at line 282 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
|
inline |
Definition at line 242 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
|
inline |
Definition at line 103 of file ScalarEvolutionPatternMatch.h.
Referenced by canFoldIVIncExpr(), CollectSubexprs(), llvm::ScalarEvolution::computeConstantDifference(), ExtractImmediateOperand(), llvm::ScalarEvolution::getAddExpr(), getSmallConstantTripCount(), getStrideFromPointer(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), isBigEndianBitShift(), isHighCostExpansion(), llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match(), MatchBinarySub(), MatchNotExpr(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Match an integer 1.
Definition at line 70 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::canPeelLastIteration(), isLoopCounter(), and llvm::SCEV::isOne().
|
inline |
Definition at line 191 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 179 of file ScalarEvolutionPatternMatch.h.
References m_scev_Unary().
Referenced by isKnownPredicateExtendIdiom(), and isSimpleCastedPHI().
|
inline |
Definition at line 268 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
Referenced by llvm::ScalarEvolution::getUDivExpr(), and llvm::ScalarEvolution::getZeroExtendExprImpl().
|
inline |
Match if we have a specific specified SCEV.
Definition at line 117 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getUDivExpr(), isKnownPredicateExtendIdiom(), IsKnownPredicateViaAddRecStart(), isSimpleCastedPHI(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Match an SCEV constant with a plain unsigned integer.
Definition at line 126 of file ScalarEvolutionPatternMatch.h.
References uint64_t.
Referenced by isBigEndianBitShift().
|
inline |
Match an SCEV constant with a plain signed integer (sign-extended value will be matched)
Definition at line 136 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 197 of file ScalarEvolutionPatternMatch.h.
References m_scev_Unary().
Referenced by llvm::ScalarEvolution::getZeroExtendExprImpl(), isSimpleCastedPHI(), and llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match().
|
inline |
Definition at line 262 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
Referenced by llvm::ScalarEvolution::getMulExpr(), isBigEndianBitShift(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Definition at line 275 of file ScalarEvolutionPatternMatch.h.
References m_scev_Binary().
|
inline |
Definition at line 173 of file ScalarEvolutionPatternMatch.h.
Referenced by m_scev_SExt(), m_scev_Trunc(), and m_scev_ZExt().
|
inline |
Match an SCEVUnknown wrapping undef or poison.
Definition at line 414 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::ScalarEvolution::containsUndefs().
|
inline |
Match the mathematical pattern A - (A / B) * B, where A and B can be arbitrary expressions.
Also match zext (trunc A to iB) to iY, which is used for URem with constant power-of-2 second operands. It's not always easy, as A and B can be folded (imagine A is X / 2, and B is 4, A / B becomes X / 8).
Definition at line 358 of file ScalarEvolutionPatternMatch.h.
Referenced by collectDivisibilityInformation(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getZeroExtendExprImpl(), and isDivisibilityGuard().
|
inline |
Match an integer 0.
Definition at line 63 of file ScalarEvolutionPatternMatch.h.
Referenced by collectDivisibilityInformation(), llvm::ScalarEvolution::getUDivExpr(), and llvm::SCEV::isZero().
|
inline |
Definition at line 185 of file ScalarEvolutionPatternMatch.h.
References m_scev_Unary().
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), isKnownPredicateExtendIdiom(), isSimpleCastedPHI(), and llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match().
|
inline |
Definition at line 82 of file ScalarEvolutionPatternMatch.h.
References llvm::PatternMatchHelpers::m_Isa().
Referenced by CollectSubexprs(), llvm::VPlanTransforms::convertToStridedAccesses(), llvm::ScalarEvolution::getMulExpr(), getStrideFromPointer(), mayUsePostIncMode(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Definition at line 92 of file ScalarEvolutionPatternMatch.h.
|
inline |
Definition at line 95 of file ScalarEvolutionPatternMatch.h.
Referenced by collectDivisibilityInformation(), and llvm::SCEVPatternMatch::is_undef_or_poison::match().
|
inline |
Definition at line 83 of file ScalarEvolutionPatternMatch.h.
References llvm::PatternMatchHelpers::m_Isa().
Referenced by canFoldIVIncExpr(), ExtractImmediateOperand(), getSmallConstantTripCount(), llvm::ScalarEvolution::getUDivExpr(), llvm::LoopVectorizationPlanner::selectBestEpiloguePlan(), and llvm::ScalarEvolution::SimplifyICmpOperands().
|
inline |
Definition at line 388 of file ScalarEvolutionPatternMatch.h.
Referenced by llvm::canPeelLastIteration(), llvm::VPlanTransforms::convertToStridedAccesses(), getStrideFromPointer(), llvm::InductionDescriptor::isInductionPHI(), IsKnownPredicateViaAddRecStart(), isLoopCounter(), and optimizeLatchExitIVUserViaSCEV().
Definition at line 38 of file ScalarEvolutionPatternMatch.h.
References P.
Referenced by canFoldIVIncExpr(), cannotHoistOrSinkRecipe(), llvm::vputils::cannotHoistOrSinkRecipe(), llvm::canPeelLastIteration(), checkOrAndOpImpliedByOther(), CollectSubexprs(), combineRecipe(), countToEliminateCompares(), decompose(), DoInitialMatch(), ExtractImmediateOperand(), llvm::LoopVectorizationCostModel::getInstructionCost(), llvm::vputils::getSCEVExprForVPValue(), getSmallConstantTripCount(), llvm::vputils::isAddressSCEVForCost(), isHighCostExpansion(), isLoopCounter(), isSignificantBitCheckWellFormed(), llvm::vputils::isUniformAcrossVFsAndUFs(), llvm::SCEVPatternMatch::is_undef_or_poison::match(), llvm::SCEVPatternMatch::SCEVURem_match< Op0_t, Op1_t >::match(), RecurrenceInfo::matchConditionalRecurrence(), mayUsePostIncMode(), optimizeLoopExitWithUnknownExitCount(), optimizeVectorInductionWidthForTCAndVFUF(), preparePlanForEpilogueVectorLoop(), replaceSubOverflowUses(), llvm::ScalarEvolution::LoopGuards::rewrite(), llvm::LoopVectorizationPlanner::selectBestEpiloguePlan(), simplifyBlends(), and simplifyRecipe().