class OverflowingBinaryOperator
Declaration
class OverflowingBinaryOperator : public Operator { /* full declaration omitted */ };
Description
Utility class for integer operators which may exhibit overflow - Add, Sub, Mul, and Shl. It does not include SDiv, despite that operator having the potential for overflow.
Declared at: llvm/include/llvm/IR/Operator.h:72
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::Instruction * I)
- public static bool classof(const llvm::ConstantExpr * CE)
- public static bool classof(const llvm::Value * V)
- public bool hasNoSignedWrap() const
- public bool hasNoUnsignedWrap() const
- private void setHasNoSignedWrap(bool B)
- private void setHasNoUnsignedWrap(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::Instruction* I)
static bool classof(const llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/Operator.h:106
Parameters
- const llvm::Instruction* I
¶static bool classof(const llvm::ConstantExpr* CE)
static bool classof(const llvm::ConstantExpr* CE)
Declared at: llvm/include/llvm/IR/Operator.h:112
Parameters
- const llvm::ConstantExpr* CE
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/Operator.h:118
Parameters
- const llvm::Value* V
¶bool hasNoSignedWrap() const
bool hasNoSignedWrap() const
Description
Test whether this operation is known to never undergo signed overflow, aka the nsw property.
Declared at: llvm/include/llvm/IR/Operator.h:102
¶bool hasNoUnsignedWrap() const
bool hasNoUnsignedWrap() const
Description
Test whether this operation is known to never undergo unsigned overflow, aka the nuw property.
Declared at: llvm/include/llvm/IR/Operator.h:96
¶void setHasNoSignedWrap(bool B)
void setHasNoSignedWrap(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:88
Parameters
- bool B
¶void setHasNoUnsignedWrap(bool B)
void setHasNoUnsignedWrap(bool B)
Declared at: llvm/include/llvm/IR/Operator.h:84
Parameters
- bool B