|
LLVM 23.0.0git
|
Class to record and manage LLVM IR flags. More...
#include "Transforms/Vectorize/VPlan.h"
Classes | |
| struct | DisjointFlagsTy |
| struct | NonNegFlagsTy |
| struct | TruncFlagsTy |
| struct | WrapFlagsTy |
Static Public Member Functions | |
| static VPIRFlags | getDefaultFlags (unsigned Opcode) |
Returns default flags for Opcode for opcodes that support it, asserts otherwise. | |
|
inline |
Definition at line 765 of file VPlan.h.
References AllFlags.
Referenced by getDefaultFlags(), intersectFlags(), transferFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPReductionPHIRecipe::VPReductionPHIRecipe(), llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe(), and llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe().
|
inline |
Definition at line 767 of file VPlan.h.
References AllFlags, CmpPredicate, DisjointFlags, llvm::dyn_cast(), ExactFlags, FCmpFlags, FMFs, GEP, GEPFlags, I, NonNegFlags, TruncFlags, and WrapFlags.
|
inline |
Definition at line 802 of file VPlan.h.
References CmpPredicate.
|
inline |
|
inline |
|
inline |
Definition at line 814 of file VPlan.h.
References TruncFlags.
|
inline |
|
inline |
Definition at line 819 of file VPlan.h.
References DisjointFlags.
|
inline |
Definition at line 822 of file VPlan.h.
References NonNegFlags.
|
inline |
Definition at line 825 of file VPlan.h.
References ExactFlags.
|
inline |
|
inline |
Definition at line 831 of file VPlan.h.
References FMFs, and ReductionFlags.
|
inline |
Apply the IR flags to I.
Definition at line 882 of file VPlan.h.
References llvm::cast(), DisjointFlags, ExactFlags, F, GEPFlags, I, llvm_unreachable, NonNegFlags, TruncFlags, and WrapFlags.
Referenced by llvm::VPWidenCallRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenRecipe::execute(), and scalarizeInstruction().
|
inline |
Drop all poison-generating flags.
Definition at line 845 of file VPlan.h.
References DisjointFlags, ExactFlags, GEPFlags, llvm::GEPNoWrapFlags::none(), NonNegFlags, TruncFlags, and WrapFlags.
Returns true if the set flags are valid for Opcode.
Definition at line 2128 of file VPlanRecipes.cpp.
References llvm::VPInstruction::ComputeReductionResult, llvm_unreachable, llvm::VPInstruction::PtrAdd, llvm::VPInstruction::ReductionStartVector, llvm::VPInstruction::WideIVStep, and llvm::VPInstruction::WidePtrAdd.
Referenced by llvm::VPInstruction::execute(), and llvm::VPInstruction::VPInstruction().
Returns default flags for Opcode for opcodes that support it, asserts otherwise.
Opcodes not supporting default flags include compares and ComputeReductionResult.
Definition at line 2085 of file VPlanRecipes.cpp.
References llvm::VPInstruction::CanonicalIVIncrementForPart, llvm::VPInstruction::ComputeReductionResult, llvm_unreachable, llvm::GEPNoWrapFlags::none(), llvm::VPInstruction::PtrAdd, VPIRFlags(), and llvm::VPInstruction::WidePtrAdd.
Referenced by llvm::VPlanSlp::buildGraph(), llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::VPBuilder::createWidenCast(), hasRequiredFlagsForOpcode(), optimizeMaskToEVL(), optimizeVectorInductionWidthForTCAndVFUF(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().
| FastMathFlags VPIRFlags::getFastMathFlags | ( | ) | const |
Definition at line 369 of file VPlanRecipes.cpp.
References assert(), F, llvm::FastMathFlags::setAllowContract(), llvm::FastMathFlags::setAllowReassoc(), llvm::FastMathFlags::setAllowReciprocal(), llvm::FastMathFlags::setApproxFunc(), llvm::FastMathFlags::setNoInfs(), llvm::FastMathFlags::setNoNaNs(), and llvm::FastMathFlags::setNoSignedZeros().
Referenced by llvm::VPReductionRecipe::clone(), llvm::VPScalarIVStepsRecipe::clone(), llvm::VPReductionRecipe::computeCost(), llvm::VPInstruction::execute(), llvm::VPReductionEVLRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), printFlags(), llvm::VPReductionEVLRecipe::VPReductionEVLRecipe(), and llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
|
inline |
Definition at line 939 of file VPlan.h.
References GEPFlags.
Referenced by llvm::VPVectorEndPointerRecipe::clone(), llvm::VPVectorPointerRecipe::clone(), llvm::VPVectorEndPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), and llvm::VPWidenGEPRecipe::execute().
|
inline |
Definition at line 924 of file VPlan.h.
References assert(), CmpPredicate, and FCmpFlags.
Referenced by llvm::VPWidenRecipe::execute(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), printFlags(), and scalarizeInstruction().
|
inline |
Definition at line 991 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by llvm::VPlanTransforms::handleMultiUseReductions(), and printFlags().
|
inline |
Returns true if the recipe has fast-math flags.
Definition at line 947 of file VPlan.h.
Referenced by llvm::VPInstruction::execute().
|
inline |
|
inline |
Definition at line 974 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Definition at line 963 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 942 of file VPlan.h.
Referenced by scalarizeInstruction().
Returns true if Opcode has its required flags set.
Definition at line 2168 of file VPlanRecipes.cpp.
References llvm::VPInstruction::ComputeReductionResult, getDefaultFlags(), and llvm::Required.
Referenced by llvm::VPInstruction::execute(), and llvm::VPInstruction::VPInstruction().
Only keep flags also present in Other.
Other must have the same OpType as the current object.
Definition at line 319 of file VPlanRecipes.cpp.
References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FCmpFlags, GEPFlags, NonNegFlags, ReductionFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 985 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 957 of file VPlan.h.
References assert(), and NonNegFlags.
|
inline |
Definition at line 1003 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
|
inline |
Definition at line 997 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
| void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2183 of file VPlanRecipes.cpp.
References llvm::AnyOf, DisjointFlags, ExactFlags, llvm::FMaximum, llvm::FMaximumNum, llvm::FMaxNum, llvm::FMinimum, llvm::FMinimumNum, llvm::FMinNum, GEPFlags, getFastMathFlags(), llvm::RecurrenceDescriptor::getOpcode(), llvm::Instruction::getOpcodeName(), getPredicate(), llvm::CmpInst::getPredicateName(), getRecurKind(), isReductionInLoop(), isReductionOrdered(), NonNegFlags, llvm::FastMathFlags::print(), llvm::SMax, llvm::SMin, TruncFlags, llvm::UMax, llvm::UMin, and WrapFlags.
Referenced by llvm::VPBlendRecipe::printRecipe(), llvm::VPInstruction::printRecipe(), llvm::VPPhi::printRecipe(), llvm::VPReductionEVLRecipe::printRecipe(), llvm::VPReductionPHIRecipe::printRecipe(), llvm::VPReductionRecipe::printRecipe(), llvm::VPReplicateRecipe::printRecipe(), llvm::VPVectorEndPointerRecipe::printRecipe(), llvm::VPVectorPointerRecipe::printRecipe(), llvm::VPWidenCallRecipe::printRecipe(), llvm::VPWidenCastRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenIntOrFpInductionRecipe::printRecipe(), llvm::VPWidenIntrinsicRecipe::printRecipe(), and llvm::VPWidenRecipe::printRecipe().
|
inline |
Definition at line 930 of file VPlan.h.
References assert(), CmpPredicate, and FCmpFlags.
|
inline |
Definition at line 835 of file VPlan.h.
References AllFlags, and VPIRFlags().
| unsigned llvm::VPIRFlags::AllFlags |
Definition at line 761 of file VPlan.h.
Referenced by intersectFlags(), transferFlags(), VPIRFlags(), and VPIRFlags().
| CmpInst::Predicate llvm::VPIRFlags::CmpPredicate |
Definition at line 751 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 754 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
| ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 755 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| FCmpFlagsTy llvm::VPIRFlags::FCmpFlags |
Definition at line 759 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 758 of file VPlan.h.
Referenced by llvm::VPReductionRecipe::computeCost(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), and llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
| GEPNoWrapFlags llvm::VPIRFlags::GEPFlags |
Definition at line 756 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), getGEPNoWrapFlags(), intersectFlags(), printFlags(), VPIRFlags(), VPIRFlags(), llvm::VPVectorEndPointerRecipe::VPVectorEndPointerRecipe(), and llvm::VPVectorPointerRecipe::VPVectorPointerRecipe().
| NonNegFlagsTy llvm::VPIRFlags::NonNegFlags |
Definition at line 757 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
| ReductionFlagsTy llvm::VPIRFlags::ReductionFlags |
Definition at line 760 of file VPlan.h.
Referenced by getRecurKind(), intersectFlags(), isReductionInLoop(), isReductionOrdered(), and VPIRFlags().
| TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 753 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 752 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().