|
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 665 of file VPlan.h.
References AllFlags.
Referenced by intersectFlags(), transferFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), and llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags().
|
inline |
Definition at line 667 of file VPlan.h.
References AllFlags, CmpPredicate, DisjointFlags, llvm::dyn_cast(), ExactFlags, FMFs, GEP, GEPFlags, I, NonNegFlags, TruncFlags, and WrapFlags.
|
inline |
Definition at line 698 of file VPlan.h.
References CmpPredicate.
|
inline |
|
inline |
Definition at line 704 of file VPlan.h.
References TruncFlags.
|
inline |
|
inline |
Definition at line 709 of file VPlan.h.
References DisjointFlags.
|
inline |
Definition at line 712 of file VPlan.h.
References NonNegFlags.
|
inline |
|
inline |
Apply the IR flags to I.
Definition at line 763 of file VPlan.h.
References llvm::cast(), DisjointFlags, ExactFlags, FMFs, 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 728 of file VPlan.h.
References DisjointFlags, ExactFlags, FMFs, GEPFlags, llvm::GEPNoWrapFlags::none(), NonNegFlags, TruncFlags, and WrapFlags.
Returns true if the set flags are valid for Opcode.
Definition at line 2032 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 449 of file VPlanRecipes.cpp.
References assert(), FMFs, 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 812 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 800 of file VPlan.h.
References assert(), and CmpPredicate.
Referenced by llvm::VPWidenRecipe::execute(), llvm::VPRecipeWithIRFlags::getCostForRecipeWithOpcode(), printFlags(), and scalarizeInstruction().
|
inline |
Returns true if the recipe has fast-math flags.
Definition at line 818 of file VPlan.h.
Referenced by llvm::VPScalarIVStepsRecipe::clone(), llvm::VPInstruction::execute(), and llvm::VPScalarIVStepsRecipe::execute().
|
inline |
|
inline |
Definition at line 842 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Definition at line 831 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 815 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 413 of file VPlanRecipes.cpp.
References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FMFs, GEPFlags, NonNegFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 853 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 825 of file VPlan.h.
References assert(), and NonNegFlags.
| void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2069 of file VPlanRecipes.cpp.
References DisjointFlags, ExactFlags, GEPFlags, getFastMathFlags(), getPredicate(), llvm::CmpInst::getPredicateName(), NonNegFlags, llvm::FastMathFlags::print(), TruncFlags, and WrapFlags.
Referenced by llvm::VPInstruction::print(), llvm::VPReductionEVLRecipe::print(), llvm::VPReductionRecipe::print(), llvm::VPReplicateRecipe::print(), llvm::VPVectorEndPointerRecipe::print(), llvm::VPWidenCallRecipe::print(), llvm::VPWidenCastRecipe::print(), llvm::VPWidenGEPRecipe::print(), llvm::VPWidenIntrinsicRecipe::print(), llvm::VPWidenRecipe::print(), and llvm::VPWidenSelectRecipe::print().
|
inline |
Definition at line 806 of file VPlan.h.
References assert(), and CmpPredicate.
|
inline |
Definition at line 718 of file VPlan.h.
References AllFlags, and VPIRFlags().
| unsigned llvm::VPIRFlags::AllFlags |
Definition at line 661 of file VPlan.h.
Referenced by intersectFlags(), transferFlags(), VPIRFlags(), and VPIRFlags().
| CmpInst::Predicate llvm::VPIRFlags::CmpPredicate |
Definition at line 653 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
| DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 656 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
| ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 657 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), and VPIRFlags().
| FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 660 of file VPlan.h.
Referenced by applyFlags(), llvm::VPReductionRecipe::computeCost(), dropPoisonGeneratingFlags(), getFastMathFlags(), intersectFlags(), VPIRFlags(), VPIRFlags(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), llvm::VPReductionRecipe::VPReductionRecipe(), and llvm::VPScalarIVStepsRecipe::VPScalarIVStepsRecipe().
| GEPNoWrapFlags llvm::VPIRFlags::GEPFlags |
Definition at line 658 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 659 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
| TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 655 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().
| WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 654 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().