LLVM: llvm::SDNodeFlags Struct Reference (original) (raw)

These are IR-level optimization flags that may be propagated to SDNodes. More...

#include "[llvm/CodeGen/SelectionDAGNodes.h](SelectionDAGNodes%5F8h%5Fsource.html)"

Public Types
enum : unsigned { None = 0 , NoUnsignedWrap = 1 << 0 , NoSignedWrap = 1 << 1 , NoWrap = NoUnsignedWrap | NoSignedWrap , Exact = 1 << 2 , Disjoint = 1 << 3 , NonNeg = 1 << 4 , NoNaNs = 1 << 5 , NoInfs = 1 << 6 , NoSignedZeros = 1 << 7 , AllowReciprocal = 1 << 8 , AllowContract = 1 << 9 , ApproximateFuncs = 1 << 10 , AllowReassociation = 1 << 11 , NoFPExcept = 1 << 12 , Unpredictable = 1 << 13 , SameSign = 1 << 14 , InBounds = 1 << 15 , PoisonGeneratingFlags, FastMathFlags }
Public Member Functions
SDNodeFlags (unsigned Flags=SDNodeFlags::None)
Default constructor turns off all optimization flags.
void copyFMF (const FPMathOperator &FPMO)
Propagate the fast-math-flags from an IR FPMathOperator.
void setNoUnsignedWrap (bool b)
void setNoSignedWrap (bool b)
void setExact (bool b)
void setDisjoint (bool b)
void setSameSign (bool b)
void setNonNeg (bool b)
void setNoNaNs (bool b)
void setNoInfs (bool b)
void setNoSignedZeros (bool b)
void setAllowReciprocal (bool b)
void setAllowContract (bool b)
void setApproximateFuncs (bool b)
void setAllowReassociation (bool b)
void setNoFPExcept (bool b)
void setUnpredictable (bool b)
void setInBounds (bool b)
bool hasNoUnsignedWrap () const
bool hasNoSignedWrap () const
bool hasExact () const
bool hasDisjoint () const
bool hasSameSign () const
bool hasNonNeg () const
bool hasNoNaNs () const
bool hasNoInfs () const
bool hasNoSignedZeros () const
bool hasAllowReciprocal () const
bool hasAllowContract () const
bool hasApproximateFuncs () const
bool hasAllowReassociation () const
bool hasNoFPExcept () const
bool hasUnpredictable () const
bool hasInBounds () const
bool operator== (const SDNodeFlags &Other) const
void operator&= (const SDNodeFlags &OtherFlags)
void operator|= (const SDNodeFlags &OtherFlags)

These are IR-level optimization flags that may be propagated to SDNodes.

TODO: This data structure should be shared by the IR optimizer and the the backend.

Definition at line 384 of file SelectionDAGNodes.h.

anonymous enum

Enumerator
None
NoUnsignedWrap
NoSignedWrap
NoWrap
Exact
Disjoint
NonNeg
NoNaNs
NoInfs
NoSignedZeros
AllowReciprocal
AllowContract
ApproximateFuncs
AllowReassociation
NoFPExcept
Unpredictable
SameSign
InBounds
PoisonGeneratingFlags
FastMathFlags

Definition at line 395 of file SelectionDAGNodes.h.

llvm::SDNodeFlags::SDNodeFlags ( unsigned Flags = SDNodeFlags::None) inline

copyFMF()

Propagate the fast-math-flags from an IR FPMathOperator.

Definition at line 444 of file SelectionDAGNodes.h.

References llvm::FPMathOperator::hasAllowContract(), llvm::FPMathOperator::hasAllowReassoc(), llvm::FPMathOperator::hasAllowReciprocal(), llvm::FPMathOperator::hasApproxFunc(), llvm::FPMathOperator::hasNoInfs(), llvm::FPMathOperator::hasNoNaNs(), llvm::FPMathOperator::hasNoSignedZeros(), setAllowContract(), setAllowReassociation(), setAllowReciprocal(), setApproximateFuncs(), setNoInfs(), setNoNaNs(), and setNoSignedZeros().

hasAllowContract()

bool llvm::SDNodeFlags::hasAllowContract ( ) const inline

hasAllowReassociation()

bool llvm::SDNodeFlags::hasAllowReassociation ( ) const inline

hasAllowReciprocal()

bool llvm::SDNodeFlags::hasAllowReciprocal ( ) const inline

hasApproximateFuncs()

bool llvm::SDNodeFlags::hasApproximateFuncs ( ) const inline

hasDisjoint()

bool llvm::SDNodeFlags::hasDisjoint ( ) const inline

hasExact()

bool llvm::SDNodeFlags::hasExact ( ) const inline

hasInBounds()

bool llvm::SDNodeFlags::hasInBounds ( ) const inline

hasNoFPExcept()

bool llvm::SDNodeFlags::hasNoFPExcept ( ) const inline

hasNoInfs()

bool llvm::SDNodeFlags::hasNoInfs ( ) const inline

hasNoNaNs()

bool llvm::SDNodeFlags::hasNoNaNs ( ) const inline

hasNonNeg()

bool llvm::SDNodeFlags::hasNonNeg ( ) const inline

hasNoSignedWrap()

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

hasNoSignedZeros()

bool llvm::SDNodeFlags::hasNoSignedZeros ( ) const inline

hasNoUnsignedWrap()

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

hasSameSign()

bool llvm::SDNodeFlags::hasSameSign ( ) const inline

hasUnpredictable()

bool llvm::SDNodeFlags::hasUnpredictable ( ) const inline

operator&=()

operator==()

operator|=()

setAllowContract()

void llvm::SDNodeFlags::setAllowContract ( bool b) inline

setAllowReassociation()

void llvm::SDNodeFlags::setAllowReassociation ( bool b) inline

setAllowReciprocal()

void llvm::SDNodeFlags::setAllowReciprocal ( bool b) inline

setApproximateFuncs()

void llvm::SDNodeFlags::setApproximateFuncs ( bool b) inline

setDisjoint()

void llvm::SDNodeFlags::setDisjoint ( bool b) inline

setExact()

void llvm::SDNodeFlags::setExact ( bool b) inline

setInBounds()

void llvm::SDNodeFlags::setInBounds ( bool b) inline

setNoFPExcept()

void llvm::SDNodeFlags::setNoFPExcept ( bool b) inline

setNoInfs()

void llvm::SDNodeFlags::setNoInfs ( bool b) inline

setNoNaNs()

void llvm::SDNodeFlags::setNoNaNs ( bool b) inline

setNonNeg()

void llvm::SDNodeFlags::setNonNeg ( bool b) inline

setNoSignedWrap()

void llvm::SDNodeFlags::setNoSignedWrap ( bool b) inline

setNoSignedZeros()

void llvm::SDNodeFlags::setNoSignedZeros ( bool b) inline

setNoUnsignedWrap()

void llvm::SDNodeFlags::setNoUnsignedWrap ( bool b) inline

setSameSign()

void llvm::SDNodeFlags::setSameSign ( bool b) inline

setUnpredictable()

void llvm::SDNodeFlags::setUnpredictable ( bool b) inline

SDNode


The documentation for this struct was generated from the following file: