|
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 786 of file VPlan.h.
References AllFlags.
Referenced by getDefaultFlags(), intersectFlags(), transferFlags(), VPIRFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPReductionPHIRecipe::VPReductionPHIRecipe(), llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe(), and llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe().
|
inline |
Definition at line 788 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 826 of file VPlan.h.
References AllFlags, assert(), CmpPredStorage, getPredicate(), and llvm::Bitfield::set().
|
inline |
Definition at line 831 of file VPlan.h.
References AllFlags, assert(), FCmpFlags, FMFs, getPredicate(), and llvm::Bitfield::set().
|
inline |
|
inline |
Definition at line 843 of file VPlan.h.
References AllFlags, and TruncFlags.
|
inline |
|
inline |
Definition at line 852 of file VPlan.h.
References AllFlags, and DisjointFlags.
|
inline |
Definition at line 857 of file VPlan.h.
References AllFlags, and NonNegFlags.
|
inline |
Definition at line 862 of file VPlan.h.
References AllFlags, and ExactFlags.
|
inline |
Definition at line 867 of file VPlan.h.
References AllFlags, GEPFlagsStorage, and llvm::GEPNoWrapFlags::getRaw().
|
inline |
Definition at line 872 of file VPlan.h.
References AllFlags, FMFs, and ReductionFlags.
|
inline |
Apply the IR flags to I.
Definition at line 925 of file VPlan.h.
References llvm::cast(), DisjointFlags, ExactFlags, F, llvm::GEPNoWrapFlags::fromRaw(), GEPFlagsStorage, 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 888 of file VPlan.h.
References DisjointFlags, ExactFlags, GEPFlagsStorage, NonNegFlags, TruncFlags, and WrapFlags.
Returns true if the set flags are valid for Opcode.
Definition at line 2188 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 2145 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::VPlanTransforms::convertToConcreteRecipes(), llvm::VPBuilder::createWidenCast(), hasRequiredFlagsForOpcode(), optimizeMaskToEVL(), optimizeVectorInductionWidthForTCAndVFUF(), and llvm::VPlanTransforms::truncateToMinimalBitwidths().
| FastMathFlags VPIRFlags::getFastMathFlags | ( | ) | const |
Definition at line 393 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 986 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 1044 of file VPlan.h.
References hasNoSignedWrap(), and hasNoUnsignedWrap().
|
inline |
Definition at line 968 of file VPlan.h.
References assert(), CmpPredStorage, FCmpFlags, and llvm::Bitfield::get().
Referenced by llvm::VPWidenRecipe::execute(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), printFlags(), scalarizeInstruction(), setPredicate(), VPIRFlags(), VPIRFlags(), and VPIRFlags().
|
inline |
Definition at line 1054 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 996 of file VPlan.h.
Referenced by llvm::VPInstruction::execute().
|
inline |
|
inline |
Definition at line 1023 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
Referenced by getNoWrapFlags().
|
inline |
Definition at line 1012 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
Referenced by getNoWrapFlags().
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 991 of file VPlan.h.
Referenced by scalarizeInstruction().
Returns true if Opcode has its required flags set.
Definition at line 2228 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 343 of file VPlanRecipes.cpp.
References assert(), CmpPredStorage, DisjointFlags, ExactFlags, FCmpFlags, GEPFlagsStorage, NonNegFlags, ReductionFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 1048 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 1006 of file VPlan.h.
References assert(), and NonNegFlags.
|
inline |
Definition at line 1066 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
|
inline |
Definition at line 1060 of file VPlan.h.
References assert(), and ReductionFlags.
Referenced by printFlags().
| void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2243 of file VPlanRecipes.cpp.
References llvm::AnyOf, DisjointFlags, ExactFlags, llvm::FindLast, llvm::FMaximum, llvm::FMaximumNum, llvm::FMaxNum, llvm::FMinimum, llvm::FMinimumNum, llvm::FMinNum, getFastMathFlags(), getGEPNoWrapFlags(), 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 976 of file VPlan.h.
References assert(), CmpPredStorage, FCmpFlags, getPredicate(), and llvm::Bitfield::set().
|
inline |
Definition at line 877 of file VPlan.h.
References AllFlags, and VPIRFlags().
| uint8_t llvm::VPIRFlags::AllFlags[2] |
Definition at line 782 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 772 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 775 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
| ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 776 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| FCmpFlagsTy llvm::VPIRFlags::FCmpFlags |
Definition at line 780 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 779 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 777 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), getGEPNoWrapFlags(), intersectFlags(), VPIRFlags(), and VPIRFlags().
| NonNegFlagsTy llvm::VPIRFlags::NonNegFlags |
Definition at line 778 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
| ReductionFlagsTy llvm::VPIRFlags::ReductionFlags |
Definition at line 781 of file VPlan.h.
Referenced by getRecurKind(), intersectFlags(), isReductionInLoop(), isReductionOrdered(), and VPIRFlags().
| TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 774 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 773 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().