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 669 of file VPlan.h.
References AllFlags.
Referenced by intersectFlags(), transferFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags(), and llvm::VPRecipeWithIRFlags::VPRecipeWithIRFlags().
|
inline |
Definition at line 671 of file VPlan.h.
References AllFlags, CmpPredicate, DisjointFlags, llvm::dyn_cast(), ExactFlags, FMFs, GEP, GEPFlags, I, NonNegFlags, TruncFlags, and WrapFlags.
|
inline |
Definition at line 702 of file VPlan.h.
References CmpPredicate.
|
inline |
|
inline |
|
inline |
Definition at line 710 of file VPlan.h.
References DisjointFlags.
|
inline |
Definition at line 713 of file VPlan.h.
References NonNegFlags.
|
inline |
|
inline |
Apply the IR flags to I
.
Definition at line 764 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 729 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 2001 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 431 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 813 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 801 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 819 of file VPlan.h.
Referenced by llvm::VPScalarIVStepsRecipe::clone(), llvm::VPInstruction::execute(), and llvm::VPScalarIVStepsRecipe::execute().
|
inline |
|
inline |
Definition at line 843 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Definition at line 832 of file VPlan.h.
References llvm_unreachable, TruncFlags, and WrapFlags.
|
inline |
Returns true if the recipe has a comparison predicate.
Definition at line 816 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 395 of file VPlanRecipes.cpp.
References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FMFs, GEPFlags, NonNegFlags, TruncFlags, VPIRFlags(), and WrapFlags.
|
inline |
Definition at line 854 of file VPlan.h.
References assert(), and DisjointFlags.
|
inline |
Definition at line 826 of file VPlan.h.
References assert(), and NonNegFlags.
void VPIRFlags::printFlags | ( | raw_ostream & | O | ) | const |
Definition at line 2038 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 807 of file VPlan.h.
References assert(), and CmpPredicate.
|
inline |
Definition at line 719 of file VPlan.h.
References AllFlags, and VPIRFlags().
unsigned llvm::VPIRFlags::AllFlags |
Definition at line 665 of file VPlan.h.
Referenced by intersectFlags(), transferFlags(), VPIRFlags(), and VPIRFlags().
CmpInst::Predicate llvm::VPIRFlags::CmpPredicate |
Definition at line 657 of file VPlan.h.
Referenced by getPredicate(), intersectFlags(), setPredicate(), VPIRFlags(), and VPIRFlags().
DisjointFlagsTy llvm::VPIRFlags::DisjointFlags |
Definition at line 660 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isDisjoint(), printFlags(), VPIRFlags(), and VPIRFlags().
ExactFlagsTy llvm::VPIRFlags::ExactFlags |
Definition at line 661 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), printFlags(), and VPIRFlags().
FastMathFlagsTy llvm::VPIRFlags::FMFs |
Definition at line 664 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 662 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 663 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), intersectFlags(), isNonNeg(), printFlags(), VPIRFlags(), and VPIRFlags().
TruncFlagsTy llvm::VPIRFlags::TruncFlags |
Definition at line 659 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), and VPIRFlags().
WrapFlagsTy llvm::VPIRFlags::WrapFlags |
Definition at line 658 of file VPlan.h.
Referenced by applyFlags(), dropPoisonGeneratingFlags(), hasNoSignedWrap(), hasNoUnsignedWrap(), intersectFlags(), printFlags(), VPIRFlags(), and VPIRFlags().