class FPMathOperator
Declaration
class FPMathOperator : public Operator { /* full declaration omitted */ };
Description
Utility class for floating point operations which can have information about relaxed accuracy requirements attached to them.
Declared at: llvm/include/llvm/IR/Operator.h:167
Inherits from: Operator
Member Variables
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasMetadata
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 32
- public static MaximumAlignment = 1ULL << MaxAlignmentExponent
Method Overview
- public static bool classof(const llvm::Value * V)
- private void copyFastMathFlags(llvm::FastMathFlags FMF)
- public float getFPAccuracy() const
- public llvm::FastMathFlags getFastMathFlags() const
- public bool hasAllowContract() const
- public bool hasAllowReassoc() const
- public bool hasAllowReciprocal() const
- public bool hasApproxFunc() const
- public bool hasNoInfs() const
- public bool hasNoNaNs() const
- public bool hasNoSignedZeros() const
- public bool isFast() const
- private void setFast(bool B)
- private void setFastMathFlags(llvm::FastMathFlags FMF)
- private void setHasAllowContract(bool B)
- private void setHasAllowReassoc(bool B)
- private void setHasAllowReciprocal(bool B)
- private void setHasApproxFunc(bool B)
- private void setHasNoInfs(bool B)
- private void setHasNoNaNs(bool B)
- private void setHasNoSignedZeros(bool B)
Inherited from Operator:
- public classof
- public classof
- public classof
- public getOpcode
- public getOpcode
- public hasPoisonGeneratingFlags
Inherited from User:
- protected Op
- protected Op
- protected OpFrom
- protected allocHungoffUses
- public classof
- public dropAllReferences
- public getDescriptor
- public getDescriptor
- public getNumOperands
- public getOperand
- public getOperandList
- public getOperandList
- public getOperandUse
- public getOperandUse
- protected growHungoffUses
- public isDroppable
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operand_values
- public operand_values
- public operands
- public operands
- public replaceUsesOfWith
- public setGlobalVariableNumOperands
- public setNumHungOffUseOperands
- public setOperand
- public value_op_begin
- public value_op_begin
- public value_op_end
- public value_op_end
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- public isUsedByMetadata
- public isUsedInBasicBlock
- public materialized_use_begin
- public materialized_use_begin
- public materialized_use_empty
- public materialized_user_begin
- public materialized_user_begin
- public materialized_users
- public materialized_users
- public materialized_uses
- public materialized_uses
- public mutateType
- public print
- public print
- public printAsOperand
- public printAsOperand
- public replaceAllUsesWith
- public replaceNonMetadataUsesWith
- public replaceUsesOutsideBlock
- public replaceUsesWithIf
- public reverseUseList
- protected setMetadata
- protected setMetadata
- public setName
- public setValueName
- protected setValueSubclassData
- public sortUseList
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsOffsets
- public stripInBoundsOffsets
- public stripPointerCasts
- public stripPointerCasts
- public stripPointerCastsAndAliases
- public stripPointerCastsAndAliases
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- public stripPointerCastsSameRepresentation
- public stripPointerCastsSameRepresentation
- public takeName
- public use_begin
- public use_begin
- public use_empty
- public use_end
- public use_end
- public user_back
- public user_back
- public user_begin
- public user_begin
- public user_empty
- public user_end
- public user_end
- public users
- public users
- public uses
- public uses
Methods
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/Operator.h:294
Parameters
- const llvm::Value* V
¶void copyFastMathFlags(llvm::FastMathFlags FMF)
void copyFastMathFlags(llvm::FastMathFlags FMF)
Description
Convenience function for copying all fast-math flags. All values in FMF are transferred to this operator.
Declared at: llvm/include/llvm/IR/Operator.h:232
Parameters
¶float getFPAccuracy() const
float getFPAccuracy() const
Description
Get the maximum error permitted by this operation in ULPs. An accuracy of 0.0 means that the operation should be performed with the default precision.
Declared at: llvm/include/llvm/IR/Operator.h:292
¶llvm::FastMathFlags getFastMathFlags() const
llvm::FastMathFlags getFastMathFlags() const
Description
Convenience function for getting all the fast-math flags
Declared at: llvm/include/llvm/IR/Operator.h:285
¶bool hasAllowContract() const
bool hasAllowContract() const
Description
Test if this operation can be floating-point contracted (FMA).
Declared at: llvm/include/llvm/IR/Operator.h:274
¶bool hasAllowReassoc() const
bool hasAllowReassoc() const
Description
Test if this operation may be simplified with reassociative transforms.
Declared at: llvm/include/llvm/IR/Operator.h:249
¶bool hasAllowReciprocal() const
bool hasAllowReciprocal() const
Description
Test if this operation can use reciprocal multiply instead of division.
Declared at: llvm/include/llvm/IR/Operator.h:269
¶bool hasApproxFunc() const
bool hasApproxFunc() const
Description
Test if this operation allows approximations of math library functions or intrinsics.
Declared at: llvm/include/llvm/IR/Operator.h:280
¶bool hasNoInfs() const
bool hasNoInfs() const
Description
Test if this operation's arguments and results are assumed not-infinite.
Declared at: llvm/include/llvm/IR/Operator.h:259
¶bool hasNoNaNs() const
bool hasNoNaNs() const
Description
Test if this operation's arguments and results are assumed not-NaN.
Declared at: llvm/include/llvm/IR/Operator.h:254
¶bool hasNoSignedZeros() const
bool hasNoSignedZeros() const
Description
Test if this operation can ignore the sign of zero.
Declared at: llvm/include/llvm/IR/Operator.h:264
¶bool isFast() const
bool isFast() const
Description
Test if this operation allows all non-strict floating-point transforms.
Declared at: llvm/include/llvm/IR/Operator.h:238
¶void setFast(bool B)
void setFast(bool B)
Description
'Fast' means all bits are set.
Declared at: llvm/include/llvm/IR/Operator.h:172
Parameters
- bool B
¶void setFastMathFlags(llvm::FastMathFlags FMF)
void setFastMathFlags(llvm::FastMathFlags FMF)
Description
Convenience function for setting multiple fast-math flags. FMF is a mask of the bits to set.
Declared at: llvm/include/llvm/IR/Operator.h:226
Parameters
¶void setHasAllowContract(bool B)
void setHasAllowContract(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:212
Parameters
- bool B
¶void setHasAllowReassoc(bool B)
void setHasAllowReassoc(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:182
Parameters
- bool B
¶void setHasAllowReciprocal(bool B)
void setHasAllowReciprocal(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:206
Parameters
- bool B
¶void setHasApproxFunc(bool B)
void setHasApproxFunc(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:218
Parameters
- bool B
¶void setHasNoInfs(bool B)
void setHasNoInfs(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:194
Parameters
- bool B
¶void setHasNoNaNs(bool B)
void setHasNoNaNs(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:188
Parameters
- bool B
¶void setHasNoSignedZeros(bool B)
void setHasNoSignedZeros(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:200
Parameters
- bool B