LLVM  7.0.0svn
Public Member Functions | List of all members
llvm::SDNodeFlags Struct Reference

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

#include "llvm/CodeGen/SelectionDAGNodes.h"

Public Member Functions

 SDNodeFlags ()
 Default constructor turns off all optimization flags. More...
 
void setDefined ()
 Sets the state of the flags to the defined state. More...
 
bool isDefined () const
 Returns true if the flags are in a defined state. More...
 
void setNoUnsignedWrap (bool b)
 
void setNoSignedWrap (bool b)
 
void setExact (bool b)
 
void setUnsafeAlgebra (bool b)
 
void setNoNaNs (bool b)
 
void setNoInfs (bool b)
 
void setNoSignedZeros (bool b)
 
void setAllowReciprocal (bool b)
 
void setVectorReduction (bool b)
 
void setAllowContract (bool b)
 
bool hasNoUnsignedWrap () const
 
bool hasNoSignedWrap () const
 
bool hasExact () const
 
bool hasUnsafeAlgebra () const
 
bool hasNoNaNs () const
 
bool hasNoInfs () const
 
bool hasNoSignedZeros () const
 
bool hasAllowReciprocal () const
 
bool hasVectorReduction () const
 
bool hasAllowContract () const
 
void intersectWith (const SDNodeFlags Flags)
 Clear any flags in this flag set that aren't also set in Flags. More...
 

Detailed Description

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 352 of file SelectionDAGNodes.h.

Constructor & Destructor Documentation

◆ SDNodeFlags()

llvm::SDNodeFlags::SDNodeFlags ( )
inline

Default constructor turns off all optimization flags.

Definition at line 372 of file SelectionDAGNodes.h.

Member Function Documentation

◆ hasAllowContract()

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

Definition at line 435 of file SelectionDAGNodes.h.

References llvm::bitc::AllowContract.

Referenced by isContractable().

◆ hasAllowReciprocal()

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

Definition at line 433 of file SelectionDAGNodes.h.

References llvm::bitc::AllowReciprocal.

Referenced by emitRemovedIntrinsicError(), and isFMulNegTwo().

◆ hasExact()

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

◆ hasNoInfs()

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

Definition at line 431 of file SelectionDAGNodes.h.

References llvm::bitc::NoInfs.

◆ hasNoNaNs()

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

◆ hasNoSignedWrap()

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

◆ hasNoSignedZeros()

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

◆ hasNoUnsignedWrap()

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

◆ hasUnsafeAlgebra()

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

◆ hasVectorReduction()

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

Definition at line 434 of file SelectionDAGNodes.h.

Referenced by combineAdd().

◆ intersectWith()

void llvm::SDNodeFlags::intersectWith ( const SDNodeFlags  Flags)
inline

Clear any flags in this flag set that aren't also set in Flags.

If the given Flags are undefined then don't do anything.

Definition at line 439 of file SelectionDAGNodes.h.

References llvm::bitc::AllowContract, llvm::bitc::AllowReciprocal, isDefined(), llvm::bitc::NoInfs, llvm::bitc::NoNaNs, llvm::bitc::NoSignedZeros, and llvm::bitc::UnsafeAlgebra.

Referenced by llvm::SDNode::intersectFlagsWith().

◆ isDefined()

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

Returns true if the flags are in a defined state.

Definition at line 381 of file SelectionDAGNodes.h.

Referenced by llvm::createR600ISelDag(), and intersectWith().

◆ setAllowContract()

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

Definition at line 420 of file SelectionDAGNodes.h.

References llvm::bitc::AllowContract.

Referenced by isVectorReductionOp().

◆ setAllowReciprocal()

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

Definition at line 412 of file SelectionDAGNodes.h.

References llvm::bitc::AllowReciprocal.

Referenced by isVectorReductionOp().

◆ setDefined()

void llvm::SDNodeFlags::setDefined ( )
inline

Sets the state of the flags to the defined state.

Definition at line 379 of file SelectionDAGNodes.h.

◆ setExact()

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

◆ setNoInfs()

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

Definition at line 404 of file SelectionDAGNodes.h.

References llvm::bitc::NoInfs.

Referenced by isVectorReductionOp(), and PrepareCall().

◆ setNoNaNs()

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

Definition at line 400 of file SelectionDAGNodes.h.

References llvm::bitc::NoNaNs.

Referenced by addStackMapLiveVars(), isVectorReductionOp(), and PrepareCall().

◆ setNoSignedWrap()

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

◆ setNoSignedZeros()

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

Definition at line 408 of file SelectionDAGNodes.h.

References llvm::bitc::NoSignedZeros.

Referenced by isVectorReductionOp().

◆ setNoUnsignedWrap()

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

◆ setUnsafeAlgebra()

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

Definition at line 396 of file SelectionDAGNodes.h.

References llvm::bitc::UnsafeAlgebra.

Referenced by getEstimate(), isFMulNegTwo(), and isVectorReductionOp().

◆ setVectorReduction()

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

Definition at line 416 of file SelectionDAGNodes.h.

Referenced by isVectorReductionOp().


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