|
LLVM 22.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 |
|
inline |
Definition at line 686 of file VPlan.h.
References AllFlags.
Referenced by intersectFlags(), transferFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe(), and llvm::VPWidenIntOrFpInductionRecipe::VPWidenIntOrFpInductionRecipe().
|
inline |
Definition at line 688 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 723 of file VPlan.h.
References CmpPredicate.
|
inline |
|
inline |
|
inline |
Definition at line 735 of file VPlan.h.
References TruncFlags.
|
inline |
|
inline |
Definition at line 740 of file VPlan.h.
References DisjointFlags.
|
inline |
Definition at line 743 of file VPlan.h.
References NonNegFlags.
|
inline |
|
inline |
Apply the IR flags to I.
Definition at line 795 of file VPlan.h.
References llvm::cast(), DisjointFlags, ExactFlags, F, GEPFlags, I, NonNegFlags, TruncFlags, and WrapFlags.
Referenced by llvm::VPWidenCallRecipe::execute(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenRecipe::execute(), llvm::VPWidenSelectRecipe::execute(), and scalarizeInstruction().
|
inline |
Drop all poison-generating flags.
Definition at line 759 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 2070 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().
| FastMathFlags VPIRFlags::getFastMathFlags | ( | ) | const |
Definition at line 485 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 850 of file VPlan.h.
References GEPFlags.
Referenced by llvm::VPVectorEndPointerRecipe::clone(), llvm::VPVectorPointerRecipe::clone(), llvm::VPVectorEndPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), and llvm::VPUnrollPartAccessor< 1 >::getUnrollPart().
|
inline |
Definition at line 835 of file VPlan.h.
References assert(), CmpPredicate, and FCmpFlags.
Referenced by llvm::VPWidenRecipe::execute(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), printFlags(), and scalarizeInstruction().
|
inline |
Returns true if the recipe has fast-math flags.
Definition at line 858 of file VPlan.h.
Referenced by llvm::VPScalarIVStepsRecipe::clone(), llvm::VPInstruction::execute(), and llvm::VPScalarIVStepsRecipe::execute().
|
inline |
|
inline |
Definition at line 884 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Definition at line 873 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 853 of file VPlan.h.
Referenced by scalarizeInstruction().
Only keep flags also present in Other.
Other must have the same OpType as the current object.
Definition at line 445 of file VPlanRecipes.cpp.
References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FCmpFlags, GEPFlags, NonNegFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 895 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 867 of file VPlan.h.
References assert(), and NonNegFlags.
| void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2110 of file VPlanRecipes.cpp.
References DisjointFlags, ExactFlags, GEPFlags, getFastMathFlags(), getPredicate(), llvm::CmpInst::getPredicateName(), NonNegFlags, llvm::FastMathFlags::print(), TruncFlags, and WrapFlags.
Referenced by llvm::VPInstruction::printRecipe(), llvm::VPReductionEVLRecipe::printRecipe(), llvm::VPReductionRecipe::printRecipe(), llvm::VPReplicateRecipe::printRecipe(), llvm::VPVectorEndPointerRecipe::printRecipe(), llvm::VPWidenCallRecipe::printRecipe(), llvm::VPWidenCastRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenIntOrFpInductionRecipe::printRecipe(), llvm::VPWidenIntrinsicRecipe::printRecipe(), llvm::VPWidenRecipe::printRecipe(), and llvm::VPWidenSelectRecipe::printRecipe().
|
inline |
Definition at line 841 of file VPlan.h.
References assert(), CmpPredicate, and FCmpFlags.
|
inline |
Definition at line 749 of file VPlan.h.
References AllFlags, and VPIRFlags().
| unsigned llvm::VPIRFlags::AllFlags |
Definition at line 682 of file VPlan.h.
Referenced by intersectFlags(), transferFlags(), VPIRFlags(), and VPIRFlags().
| CmpInst::Predicate llvm::VPIRFlags::CmpPredicate |
Definition at line 673 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 676 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
| ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 677 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), and VPIRFlags().
| FCmpFlagsTy llvm::VPIRFlags::FCmpFlags |
Definition at line 681 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 680 of file VPlan.h.
Referenced by llvm::VPReductionRecipe::computeCost(), VPIRFlags(), VPIRFlags(), VPIRFlags(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), and llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
| GEPNoWrapFlags llvm::VPIRFlags::GEPFlags |
Definition at line 678 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 679 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
| TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 675 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 674 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().