LLVM: llvm::KnownFPClass Struct Reference (original) (raw)
#include "[llvm/Support/KnownFPClass.h](KnownFPClass%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| bool | operator== (KnownFPClass Other) const |
| bool | isKnownNever (FPClassTest Mask) const |
| Return true if it's known this can never be one of the mask entries. | |
| bool | isKnownAlways (FPClassTest Mask) const |
| bool | isUnknown () const |
| bool | isKnownNeverNaN () const |
| Return true if it's known this can never be a nan. | |
| bool | isKnownAlwaysNaN () const |
| Return true if it's known this must always be a nan. | |
| bool | isKnownNeverInfinity () const |
| Return true if it's known this can never be an infinity. | |
| bool | isKnownNeverPosInfinity () const |
| Return true if it's known this can never be +infinity. | |
| bool | isKnownNeverNegInfinity () const |
| Return true if it's known this can never be -infinity. | |
| bool | isKnownNeverSubnormal () const |
| Return true if it's known this can never be a subnormal. | |
| bool | isKnownNeverPosSubnormal () const |
| Return true if it's known this can never be a positive subnormal. | |
| bool | isKnownNeverNegSubnormal () const |
| Return true if it's known this can never be a negative subnormal. | |
| bool | isKnownNeverZero () const |
| Return true if it's known this can never be a zero. | |
| bool | isKnownNeverPosZero () const |
| Return true if it's known this can never be a literal positive zero. | |
| bool | isKnownNeverNegZero () const |
| Return true if it's known this can never be a negative zero. | |
| LLVM_ABI bool | isKnownNeverLogicalZero (DenormalMode Mode) const |
| Return true if it's know this can never be interpreted as a zero. | |
| LLVM_ABI bool | isKnownNeverLogicalNegZero (DenormalMode Mode) const |
| Return true if it's know this can never be interpreted as a negative zero. | |
| LLVM_ABI bool | isKnownNeverLogicalPosZero (DenormalMode Mode) const |
| Return true if it's know this can never be interpreted as a positive zero. | |
| bool | cannotBeOrderedLessThanZero () const |
| Return true if we can prove that the analyzed floating-point value is either NaN or never less than -0.0. | |
| bool | cannotBeOrderedGreaterThanZero () const |
| Return true if we can prove that the analyzed floating-point value is either NaN or never greater than -0.0. | |
| KnownFPClass & | operator|= (const KnownFPClass &RHS) |
| void | knownNot (FPClassTest RuleOut) |
| void | fneg () |
| void | fabs () |
| bool | signBitIsZeroOrNaN () const |
| Return true if the sign bit must be 0, ignoring the sign of nans. | |
| void | signBitMustBeZero () |
| Assume the sign bit is zero. | |
| void | signBitMustBeOne () |
| Assume the sign bit is one. | |
| void | copysign (const KnownFPClass &Sign) |
| void | propagateNaN (const KnownFPClass &Src, bool PreserveSign=false) |
| LLVM_ABI void | propagateDenormal (const KnownFPClass &Src, DenormalMode Mode) |
| Propagate knowledge from a source value that could be a denormal or zero. | |
| LLVM_ABI void | propagateCanonicalizingSrc (const KnownFPClass &Src, DenormalMode Mode) |
| Report known classes if Src is evaluated through a potentially canonicalizing operation. | |
| void | resetAll () |
| Public Attributes | |
|---|---|
| FPClassTest | KnownFPClasses = fcAllFlags |
| Floating-point classes the value could be one of. | |
| std::optional< bool > | SignBit |
| std::nullopt if the sign bit is unknown, true if the sign bit is definitely set or false if the sign bit is definitely unset. |
Definition at line 23 of file KnownFPClass.h.
◆ cannotBeOrderedGreaterThanZero()
| bool llvm::KnownFPClass::cannotBeOrderedGreaterThanZero ( ) const | inline |
|---|
◆ cannotBeOrderedLessThanZero()
| bool llvm::KnownFPClass::cannotBeOrderedLessThanZero ( ) const | inline |
|---|
◆ copysign()
Definition at line 173 of file KnownFPClass.h.
References llvm::fcInf, llvm::fcNan, llvm::fcNegative, llvm::fcNormal, llvm::fcPositive, llvm::fcSubnormal, llvm::fcZero, isKnownNever(), KnownFPClasses, and SignBit.
Referenced by computeKnownFPClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().
◆ fabs()
| void llvm::KnownFPClass::fabs ( ) | inline |
|---|
Definition at line 142 of file KnownFPClass.h.
References llvm::fcNegInf, llvm::fcNegNormal, llvm::fcNegSubnormal, llvm::fcNegZero, llvm::fcPosInf, llvm::fcPosNormal, llvm::fcPosSubnormal, llvm::fcPosZero, KnownFPClasses, and signBitMustBeZero().
Referenced by computeKnownFPClass(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().
◆ fneg()
| void llvm::KnownFPClass::fneg ( ) | inline |
|---|
◆ isKnownAlways()
◆ isKnownAlwaysNaN()
| bool llvm::KnownFPClass::isKnownAlwaysNaN ( ) const | inline |
|---|
◆ isKnownNever()
Return true if it's known this can never be one of the mask entries.
Definition at line 36 of file KnownFPClass.h.
References llvm::fcNone, and KnownFPClasses.
Referenced by cannotBeOrderedGreaterThanZero(), cannotBeOrderedLessThanZero(), computeKnownFPClass(), copysign(), foldFPtoI(), isKnownAlways(), isKnownNeverInfinity(), isKnownNeverNaN(), isKnownNeverNegInfinity(), isKnownNeverNegSubnormal(), isKnownNeverNegZero(), isKnownNeverPosInfinity(), isKnownNeverPosSubnormal(), isKnownNeverPosZero(), isKnownNeverSubnormal(), isKnownNeverZero(), knownNot(), signBitIsZeroOrNaN(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), and simplifyFMAFMul().
◆ isKnownNeverInfinity()
| bool llvm::KnownFPClass::isKnownNeverInfinity ( ) const | inline |
|---|
◆ isKnownNeverLogicalNegZero()
◆ isKnownNeverLogicalPosZero()
◆ isKnownNeverLogicalZero()
◆ isKnownNeverNaN()
| bool llvm::KnownFPClass::isKnownNeverNaN ( ) const | inline |
|---|
◆ isKnownNeverNegInfinity()
| bool llvm::KnownFPClass::isKnownNeverNegInfinity ( ) const | inline |
|---|
◆ isKnownNeverNegSubnormal()
| bool llvm::KnownFPClass::isKnownNeverNegSubnormal ( ) const | inline |
|---|
◆ isKnownNeverNegZero()
| bool llvm::KnownFPClass::isKnownNeverNegZero ( ) const | inline |
|---|
◆ isKnownNeverPosInfinity()
| bool llvm::KnownFPClass::isKnownNeverPosInfinity ( ) const | inline |
|---|
◆ isKnownNeverPosSubnormal()
| bool llvm::KnownFPClass::isKnownNeverPosSubnormal ( ) const | inline |
|---|
◆ isKnownNeverPosZero()
| bool llvm::KnownFPClass::isKnownNeverPosZero ( ) const | inline |
|---|
◆ isKnownNeverSubnormal()
| bool llvm::KnownFPClass::isKnownNeverSubnormal ( ) const | inline |
|---|
◆ isKnownNeverZero()
| bool llvm::KnownFPClass::isKnownNeverZero ( ) const | inline |
|---|
◆ isUnknown()
| bool llvm::KnownFPClass::isUnknown ( ) const | inline |
|---|
◆ knownNot()
| void llvm::KnownFPClass::knownNot ( FPClassTest RuleOut) | inline |
|---|
◆ operator==()
◆ operator|=()
◆ propagateCanonicalizingSrc()
Report known classes if Src is evaluated through a potentially canonicalizing operation.
We can assume signaling nans will not be introduced, but cannot assume a denormal will be flushed under FTZ/DAZ.
This assumes a copy-like operation and will replace any currently known information.
Definition at line 90 of file KnownFPClass.cpp.
References propagateDenormal(), and propagateNaN().
Referenced by computeKnownFPClass().
◆ propagateDenormal()
◆ propagateNaN()
◆ resetAll()
| void llvm::KnownFPClass::resetAll ( ) | inline |
|---|
◆ signBitIsZeroOrNaN()
| bool llvm::KnownFPClass::signBitIsZeroOrNaN ( ) const | inline |
|---|
◆ signBitMustBeOne()
| void llvm::KnownFPClass::signBitMustBeOne ( ) | inline |
|---|
◆ signBitMustBeZero()
| void llvm::KnownFPClass::signBitMustBeZero ( ) | inline |
|---|
◆ KnownFPClasses
Floating-point classes the value could be one of.
Definition at line 25 of file KnownFPClass.h.
Referenced by computeKnownFPClass(), copysign(), fabs(), fneg(), isKnownNever(), isUnknown(), knownNot(), operator==(), operator|=(), propagateDenormal(), signBitMustBeOne(), signBitMustBeZero(), and llvm::InstCombinerImpl::SimplifyDemandedUseFPClass().
◆ OrderedGreaterThanZeroMask
| FPClassTest llvm::KnownFPClass::OrderedGreaterThanZeroMask | staticconstexpr |
|---|
◆ OrderedLessThanZeroMask
| FPClassTest llvm::KnownFPClass::OrderedLessThanZeroMask | staticconstexpr |
|---|
◆ SignBit
std::optional<bool> llvm::KnownFPClass::SignBit
std::nullopt if the sign bit is unknown, true if the sign bit is definitely set or false if the sign bit is definitely unset.
Definition at line 29 of file KnownFPClass.h.
Referenced by computeKnownFPClass(), llvm::computeKnownFPSignBit(), copysign(), fneg(), isUnknown(), knownNot(), operator==(), operator|=(), propagateNaN(), signBitMustBeOne(), signBitMustBeZero(), and simplifyFMAFMul().
The documentation for this struct was generated from the following files:
- include/llvm/Support/KnownFPClass.h
- lib/Support/KnownFPClass.cpp