LLVM 20.0.0git
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.
 
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 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)
 
bool hasNoUnsignedWrap () const
 
bool hasNoSignedWrap () const
 
bool hasExact () const
 
bool hasDisjoint () 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 operator== (const SDNodeFlags &Other) const
 
void intersectWith (const SDNodeFlags Flags)
 Clear any flags in this flag set that aren't also set in Flags.
 

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

Constructor & Destructor Documentation

◆ SDNodeFlags()

llvm::SDNodeFlags::SDNodeFlags ( )
inline

Default constructor turns off all optimization flags.

Definition at line 405 of file SelectionDAGNodes.h.

Member Function Documentation

◆ copyFMF()

void llvm::SDNodeFlags::copyFMF ( const FPMathOperator FPMO)
inline

◆ hasAllowContract()

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

Definition at line 449 of file SelectionDAGNodes.h.

◆ hasAllowReassociation()

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

Definition at line 451 of file SelectionDAGNodes.h.

◆ hasAllowReciprocal()

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

Definition at line 448 of file SelectionDAGNodes.h.

◆ hasApproximateFuncs()

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

Definition at line 450 of file SelectionDAGNodes.h.

◆ hasDisjoint()

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

Definition at line 443 of file SelectionDAGNodes.h.

◆ hasExact()

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

Definition at line 442 of file SelectionDAGNodes.h.

◆ hasNoFPExcept()

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

◆ hasNoInfs()

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

Definition at line 446 of file SelectionDAGNodes.h.

◆ hasNoNaNs()

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

Definition at line 445 of file SelectionDAGNodes.h.

◆ hasNonNeg()

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

Definition at line 444 of file SelectionDAGNodes.h.

Referenced by llvm::SelectionDAG::getNode().

◆ hasNoSignedWrap()

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

Definition at line 441 of file SelectionDAGNodes.h.

Referenced by llvm::TargetLowering::SimplifySetCC().

◆ hasNoSignedZeros()

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

Definition at line 447 of file SelectionDAGNodes.h.

Referenced by combineFneg(), and PerformFAddVSelectCombine().

◆ hasNoUnsignedWrap()

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

Definition at line 440 of file SelectionDAGNodes.h.

Referenced by llvm::TargetLowering::SimplifySetCC().

◆ hasUnpredictable()

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

Definition at line 453 of file SelectionDAGNodes.h.

◆ intersectWith()

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

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

All flags will be cleared if Flags are undefined.

Definition at line 471 of file SelectionDAGNodes.h.

Referenced by llvm::SDNode::intersectFlagsWith(), llvm::SDPatternMatch::BinaryOpc_match< LHS_P, RHS_P, Commutable, ExcludeChain >::match(), and llvm::SDPatternMatch::UnaryOpc_match< Opnd_P, ExcludeChain >::match().

◆ operator==()

bool llvm::SDNodeFlags::operator== ( const SDNodeFlags Other) const
inline

Definition at line 455 of file SelectionDAGNodes.h.

References llvm::Other.

◆ setAllowContract()

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

Definition at line 433 of file SelectionDAGNodes.h.

Referenced by copyFMF(), and llvm::AMDGPUTargetLowering::lowerFEXP().

◆ setAllowReassociation()

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

Definition at line 435 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setAllowReciprocal()

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

Definition at line 432 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setApproximateFuncs()

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

Definition at line 434 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setDisjoint()

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

Definition at line 427 of file SelectionDAGNodes.h.

◆ setExact()

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

Definition at line 426 of file SelectionDAGNodes.h.

◆ setNoFPExcept()

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

Definition at line 436 of file SelectionDAGNodes.h.

◆ setNoInfs()

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

Definition at line 430 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setNoNaNs()

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

Definition at line 429 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setNonNeg()

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

Definition at line 428 of file SelectionDAGNodes.h.

◆ setNoSignedWrap()

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

Definition at line 425 of file SelectionDAGNodes.h.

◆ setNoSignedZeros()

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

Definition at line 431 of file SelectionDAGNodes.h.

Referenced by copyFMF().

◆ setNoUnsignedWrap()

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

Definition at line 424 of file SelectionDAGNodes.h.

◆ setUnpredictable()

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

Definition at line 437 of file SelectionDAGNodes.h.


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