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

Convenience struct for specifying and reasoning about fast-math flags. More...

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

Public Member Functions
FastMathFlags ()=default
bool any () const
bool none () const
bool all () const
void clear ()
void set ()
bool allowReassoc () const
Flag queries.
bool noNaNs () const
bool noInfs () const
bool noSignedZeros () const
bool allowReciprocal () const
bool allowContract () const
bool approxFunc () const
bool isFast () const
'Fast' means all bits are set.
void setAllowReassoc (bool B=true)
Flag setters.
void setNoNaNs (bool B=true)
void setNoInfs (bool B=true)
void setNoSignedZeros (bool B=true)
void setAllowReciprocal (bool B=true)
void setAllowContract (bool B=true)
void setApproxFunc (bool B=true)
void setFast (bool B=true)
void operator&= (const FastMathFlags &OtherFlags)
void operator|= (const FastMathFlags &OtherFlags)
bool operator!= (const FastMathFlags &OtherFlags) const
void print (raw_ostream &O) const
Print fast-math flags to O.
Static Public Member Functions
static FastMathFlags getFast ()
static FastMathFlags intersectRewrite (FastMathFlags LHS, FastMathFlags RHS)
Intersect rewrite-based flags.
static FastMathFlags unionValue (FastMathFlags LHS, FastMathFlags RHS)
Union value flags.

Convenience struct for specifying and reasoning about fast-math flags.

Definition at line 20 of file FMF.h.

anonymous enum

Enumerator
AllowReassoc
NoNaNs
NoInfs
NoSignedZeros
AllowReciprocal
AllowContract
ApproxFunc

Definition at line 39 of file FMF.h.

llvm::FastMathFlags::FastMathFlags ( ) default

all()

bool llvm::FastMathFlags::all ( ) const inline

allowContract()

bool llvm::FastMathFlags::allowContract ( ) const inline

allowReassoc()

bool llvm::FastMathFlags::allowReassoc ( ) const inline

allowReciprocal()

bool llvm::FastMathFlags::allowReciprocal ( ) const inline

any()

bool llvm::FastMathFlags::any ( ) const inline

Definition at line 57 of file FMF.h.

approxFunc()

bool llvm::FastMathFlags::approxFunc ( ) const inline

clear()

void llvm::FastMathFlags::clear ( ) inline

getFast()

static FastMathFlags llvm::FastMathFlags::getFast ( ) inlinestatic

intersectRewrite()

isFast()

bool llvm::FastMathFlags::isFast ( ) const inline

'Fast' means all bits are set.

Definition at line 73 of file FMF.h.

References all().

noInfs()

bool llvm::FastMathFlags::noInfs ( ) const inline

noNaNs()

bool llvm::FastMathFlags::noNaNs ( ) const inline

Definition at line 66 of file FMF.h.

References NoNaNs.

Referenced by llvm::canIgnoreSNaN(), llvm::computeKnownFPClass(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::RISCVTTIImpl::getMinMaxReductionCost(), llvm::getRecurrenceIdentity(), isKnownIntegral(), isKnownNonNaN(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), mapToLLVMFastMathFlags(), print(), simplifyFAddInst(), simplifyFCmpInst(), simplifyFDivInst(), simplifyFMAFMul(), simplifyFPOp(), simplifyFRemInst(), and simplifyFSubInst().

none()

bool llvm::FastMathFlags::none ( ) const inline

noSignedZeros()

bool llvm::FastMathFlags::noSignedZeros ( ) const inline

Definition at line 68 of file FMF.h.

References NoSignedZeros.

Referenced by foldFNegIntoConstant(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::getRecurrenceIdentity(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), mapToLLVMFastMathFlags(), matchSelectPattern(), print(), simplifyFAddInst(), simplifyFDivInst(), simplifyFMAFMul(), and simplifyFSubInst().

operator!=()

operator&=()

Definition at line 99 of file FMF.h.

operator|=()

print()

void llvm::FastMathFlags::print ( raw_ostream & O ) const

set()

void llvm::FastMathFlags::set ( ) inline

setAllowContract()

void llvm::FastMathFlags::setAllowContract ( bool B = true) inline

setAllowReassoc()

void llvm::FastMathFlags::setAllowReassoc ( bool B = true) inline

setAllowReciprocal()

void llvm::FastMathFlags::setAllowReciprocal ( bool B = true) inline

setApproxFunc()

void llvm::FastMathFlags::setApproxFunc ( bool B = true) inline

setFast()

void llvm::FastMathFlags::setFast ( bool B = true) inline

setNoInfs()

void llvm::FastMathFlags::setNoInfs ( bool B = true) inline

setNoNaNs()

void llvm::FastMathFlags::setNoNaNs ( bool B = true) inline

setNoSignedZeros()

void llvm::FastMathFlags::setNoSignedZeros ( bool B = true) inline

unionValue()

FPMathOperator

Definition at line 22 of file FMF.h.


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