|
LLVM 24.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, Type *ResultTy=nullptr) |
Returns default flags for Opcode and scalar ResultTy for opcodes that support it, asserts otherwise. | |
|
inline |
Definition at line 799 of file VPlan.h.
References AllFlags.
Referenced by getDefaultFlags(), intersectFlags(), transferFlags(), VPIRFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPReductionPHIRecipe::VPReductionPHIRecipe(), llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe(), and llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe().
|
inline |
Definition at line 801 of file VPlan.h.
References assert(), CmpPredStorage, DisjointFlags, llvm::dyn_cast(), ExactFlags, FCmpFlags, FMFs, GEP, GEPFlagsStorage, getGEPNoWrapFlags(), getPredicate(), I, NonNegFlags, llvm::Bitfield::set(), TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 839 of file VPlan.h.
References AllFlags, assert(), CmpPredStorage, getPredicate(), and llvm::Bitfield::set().
|
inline |
Definition at line 844 of file VPlan.h.
References AllFlags, assert(), FCmpFlags, FMFs, getPredicate(), and llvm::Bitfield::set().
|
inline |
|
inline |
Definition at line 856 of file VPlan.h.
References AllFlags, and TruncFlags.
|
inline |
|
inline |
Definition at line 865 of file VPlan.h.
References AllFlags, and DisjointFlags.
|
inline |
Definition at line 870 of file VPlan.h.
References AllFlags, and NonNegFlags.
|
inline |
Definition at line 875 of file VPlan.h.
References AllFlags, and ExactFlags.
|
inline |
Definition at line 880 of file VPlan.h.
References AllFlags, GEPFlagsStorage, and llvm::GEPNoWrapFlags::getRaw().
|
inline |
Definition at line 885 of file VPlan.h.
References AllFlags, FMFs, and ReductionFlags.
|
inline |
Apply the IR flags to I.
Definition at line 938 of file VPlan.h.
References llvm::cast(), DisjointFlags, ExactFlags, F, llvm::GEPNoWrapFlags::fromRaw(), GEPFlagsStorage, I, llvm_unreachable, NonNegFlags, TruncFlags, and WrapFlags.
Referenced by llvm::VPWidenIntrinsicRecipe::createVectorCall(), llvm::VPInstructionWithType::execute(), llvm::VPReplicateRecipe::execute(), llvm::VPWidenCallRecipe::execute(), llvm::VPWidenCastRecipe::execute(), and llvm::VPWidenRecipe::execute().
|
inline |
Drop all poison-generating flags.
Definition at line 901 of file VPlan.h.
References DisjointFlags, ExactFlags, GEPFlagsStorage, NonNegFlags, TruncFlags, and WrapFlags.
Referenced by llvm::VPlanTransforms::replaceWideCanonicalIVWithWideIV().
Returns true if the set flags are valid for Opcode.
Definition at line 2577 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 and scalar ResultTy for opcodes that support it, asserts otherwise.
Opcodes not supporting default flags include compares and ComputeReductionResult.
Definition at line 2526 of file VPlanRecipes.cpp.
References llvm::VPInstruction::CanonicalIVIncrementForPart, llvm::VPInstruction::ComputeReductionResult, llvm::FPMathOperator::isSupportedFloatingPointType(), llvm_unreachable, llvm::GEPNoWrapFlags::none(), llvm::VPInstruction::PtrAdd, VPIRFlags(), and llvm::VPInstruction::WidePtrAdd.
Referenced by llvm::VPlanTransforms::convertToConcreteRecipes(), llvm::VPBuilder::createScalarPhi(), llvm::VPBuilder::createSelect(), llvm::VPBuilder::createWidenCast(), llvm::VPSCEVExpander::expand(), hasRequiredFlagsForOpcode(), narrowToSingleScalarRecipes(), optimizeMaskToEVL(), optimizeVectorInductionWidthForTCAndVFUF(), and llvm::VPlanTransforms::sinkPredicatedStores().
| FastMathFlags VPIRFlags::getFastMathFlagsOrNone | ( | ) | const |
Definition at line 405 of file VPlanRecipes.cpp.
References F, hasFastMathFlags(), 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(), intersectFlags(), preparePlanForEpilogueVectorLoop(), printFlags(), and llvm::VPReductionEVLRecipe::VPReductionEVLRecipe().
|
inline |
Definition at line 999 of file VPlan.h.
References llvm::GEPNoWrapFlags::fromRaw(), and GEPFlagsStorage.
Referenced by llvm::VPVectorEndPointerRecipe::clone(), llvm::VPVectorPointerRecipe::clone(), llvm::VPVectorEndPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), printFlags(), and VPIRFlags().
|
inline |
Definition at line 1054 of file VPlan.h.
References hasNoSignedWrap(), and hasNoUnsignedWrap().
Referenced by llvm::VPDerivedIVRecipe::clone(), and llvm::VPWidenCanonicalIVRecipe::clone().
|
inline |
Definition at line 1044 of file VPlan.h.
References hasNoSignedWrap(), and hasNoUnsignedWrap().
|
inline |
Definition at line 981 of file VPlan.h.
References assert(), CmpPredStorage, FCmpFlags, and llvm::Bitfield::get().
Referenced by llvm::VPReplicateRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), printFlags(), setPredicate(), VPIRFlags(), VPIRFlags(), and VPIRFlags().
|
inline |
Definition at line 1064 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 1009 of file VPlan.h.
Referenced by getFastMathFlagsOrNone().
|
inline |
Definition at line 1033 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
Referenced by getNoWrapFlags(), and getNoWrapFlagsOrNone().
|
inline |
Definition at line 1022 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
Referenced by getNoWrapFlags(), and getNoWrapFlagsOrNone().
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 1004 of file VPlan.h.
Referenced by llvm::VPReplicateRecipe::execute().
Returns true if Opcode with scalar result type ResultTy has its required flags set.
Definition at line 2618 of file VPlanRecipes.cpp.
References llvm::VPInstruction::ComputeReductionResult, and getDefaultFlags().
Referenced by llvm::VPInstruction::execute(), llvm::VPBlendRecipe::VPBlendRecipe(), and llvm::VPInstruction::VPInstruction().
Only keep flags also present in Other.
Other must have the same OpType as the current object.
Definition at line 357 of file VPlanRecipes.cpp.
References assert(), CmpPredStorage, DisjointFlags, ExactFlags, FCmpFlags, GEPFlagsStorage, getFastMathFlagsOrNone(), NonNegFlags, ReductionFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 1058 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 1016 of file VPlan.h.
References assert(), and NonNegFlags.
|
inline |
Definition at line 1076 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
|
inline |
Definition at line 1070 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
| void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2723 of file VPlanRecipes.cpp.
References DisjointFlags, ExactFlags, getFastMathFlagsOrNone(), getGEPNoWrapFlags(), getPredicate(), llvm::CmpInst::getPredicateName(), getRecurKind(), isReductionInLoop(), isReductionOrdered(), NonNegFlags, llvm::FastMathFlags::print(), printRecurrenceKind(), TruncFlags, and WrapFlags.
Referenced by llvm::VPBlendRecipe::printRecipe(), llvm::VPDerivedIVRecipe::printRecipe(), llvm::VPInstruction::printRecipe(), llvm::VPInstructionWithType::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::VPWidenCanonicalIVRecipe::printRecipe(), llvm::VPWidenCastRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenIntOrFpInductionRecipe::printRecipe(), llvm::VPWidenIntrinsicRecipe::printRecipe(), and llvm::VPWidenRecipe::printRecipe().
|
inline |
Definition at line 989 of file VPlan.h.
References assert(), CmpPredStorage, FCmpFlags, getPredicate(), and llvm::Bitfield::set().
|
inline |
Definition at line 890 of file VPlan.h.
References AllFlags, and VPIRFlags().
| uint8_t llvm::VPIRFlags::AllFlags[2] |
Definition at line 795 of file VPlan.h.
Referenced by transferFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), VPIRFlags(), and VPIRFlags().
| uint8_t llvm::VPIRFlags::CmpPredStorage |
Definition at line 785 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 788 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
| ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 789 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| FCmpFlagsTy llvm::VPIRFlags::FCmpFlags |
Definition at line 793 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 792 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().
| uint8_t llvm::VPIRFlags::GEPFlagsStorage |
Definition at line 790 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), getGEPNoWrapFlags(), intersectFlags(), VPIRFlags(), and VPIRFlags().
| NonNegFlagsTy llvm::VPIRFlags::NonNegFlags |
Definition at line 791 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
| ReductionFlagsTy llvm::VPIRFlags::ReductionFlags |
Definition at line 794 of file VPlan.h.
Referenced by getRecurKind(), intersectFlags(), isReductionInLoop(), isReductionOrdered(), and VPIRFlags().
| TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 787 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 786 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().