LLVM: llvm::VPIRFlags Class Reference (original) (raw)

Class to record and manage LLVM IR flags. More...

#include "[Transforms/Vectorize/VPlan.h](VPlan%5F8h%5Fsource.html)"

Public Member Functions
VPIRFlags ()
VPIRFlags (Instruction &I)
VPIRFlags (CmpInst::Predicate Pred)
VPIRFlags (CmpInst::Predicate Pred, FastMathFlags FMFs)
VPIRFlags (WrapFlagsTy WrapFlags)
VPIRFlags (TruncFlagsTy TruncFlags)
VPIRFlags (FastMathFlags FMFs)
VPIRFlags (DisjointFlagsTy DisjointFlags)
VPIRFlags (NonNegFlagsTy NonNegFlags)
VPIRFlags (GEPNoWrapFlags GEPFlags)
void transferFlags (VPIRFlags &Other)
void intersectFlags (const VPIRFlags &Other)
Only keep flags also present in Other.
void dropPoisonGeneratingFlags ()
Drop all poison-generating flags.
void applyFlags (Instruction &I) const
Apply the IR flags to I.
CmpInst::Predicate getPredicate () const
void setPredicate (CmpInst::Predicate Pred)
GEPNoWrapFlags getGEPNoWrapFlags () const
bool hasPredicate () const
Returns true if the recipe has a comparison predicate.
bool hasFastMathFlags () const
Returns true if the recipe has fast-math flags.
LLVM_ABI_FOR_TEST FastMathFlags getFastMathFlags () const
bool hasNonNegFlag () const
Returns true if the recipe has non-negative flag.
bool isNonNeg () const
bool hasNoUnsignedWrap () const
bool hasNoSignedWrap () const
bool isDisjoint () const
bool flagsValidForOpcode (unsigned Opcode) const
Returns true if the set flags are valid for Opcode.
void printFlags (raw_ostream &O) const

Class to record and manage LLVM IR flags.

Definition at line 609 of file VPlan.h.

VPIRFlags() [1/10]

llvm::VPIRFlags::VPIRFlags ( ) inline

VPIRFlags() [2/10]

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.

VPIRFlags() [3/10]

VPIRFlags() [4/10]

VPIRFlags() [5/10]

llvm::VPIRFlags::VPIRFlags ( WrapFlagsTy WrapFlags) inline

VPIRFlags() [6/10]

llvm::VPIRFlags::VPIRFlags ( TruncFlagsTy TruncFlags) inline

VPIRFlags() [7/10]

VPIRFlags() [8/10]

VPIRFlags() [9/10]

VPIRFlags() [10/10]

applyFlags()

void llvm::VPIRFlags::applyFlags ( Instruction & I) const 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().

dropPoisonGeneratingFlags()

void llvm::VPIRFlags::dropPoisonGeneratingFlags ( ) inline

flagsValidForOpcode()

bool VPIRFlags::flagsValidForOpcode ( unsigned Opcode ) const

getFastMathFlags()

Definition at line 355 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().

getGEPNoWrapFlags()

getPredicate()

hasFastMathFlags()

bool llvm::VPIRFlags::hasFastMathFlags ( ) const inline

hasNonNegFlag()

bool llvm::VPIRFlags::hasNonNegFlag ( ) const inline

Returns true if the recipe has non-negative flag.

Definition at line 865 of file VPlan.h.

hasNoSignedWrap()

bool llvm::VPIRFlags::hasNoSignedWrap ( ) const inline

hasNoUnsignedWrap()

bool llvm::VPIRFlags::hasNoUnsignedWrap ( ) const inline

hasPredicate()

bool llvm::VPIRFlags::hasPredicate ( ) const inline

intersectFlags()

Only keep flags also present in Other.

Other must have the same OpType as the current object.

Definition at line 315 of file VPlanRecipes.cpp.

References AllFlags, assert(), CmpPredicate, DisjointFlags, ExactFlags, FCmpFlags, GEPFlags, NonNegFlags, TruncFlags, VPIRFlags(), and WrapFlags.

isDisjoint()

bool llvm::VPIRFlags::isDisjoint ( ) const inline

isNonNeg()

bool llvm::VPIRFlags::isNonNeg ( ) const inline

printFlags()

Definition at line 2026 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::VPVectorPointerRecipe::printRecipe(), llvm::VPWidenCallRecipe::printRecipe(), llvm::VPWidenCastRecipe::printRecipe(), llvm::VPWidenGEPRecipe::printRecipe(), llvm::VPWidenIntOrFpInductionRecipe::printRecipe(), llvm::VPWidenIntrinsicRecipe::printRecipe(), llvm::VPWidenRecipe::printRecipe(), and llvm::VPWidenSelectRecipe::printRecipe().

setPredicate()

transferFlags()

void llvm::VPIRFlags::transferFlags ( VPIRFlags & Other) inline

AllFlags

CmpPredicate

DisjointFlags

ExactFlags

ExactFlagsTy llvm::VPIRFlags::ExactFlags

FCmpFlags

FCmpFlagsTy llvm::VPIRFlags::FCmpFlags

FMFs

FastMathFlagsTy llvm::VPIRFlags::FMFs

GEPFlags

NonNegFlags

TruncFlags

WrapFlags


The documentation for this class was generated from the following files: