class BinaryOperator
Declaration
class BinaryOperator : public Instruction { /* full declaration omitted */ };
Description
LLVM Value Representation This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values. Value is the super class of other important classes such as Instruction and Function. All Values have a Type. Type is not a subclass of Value. Some values can have a name and they belong to some Module. Setting the name on the Value automatically updates the module's symbol table. Every value has a "use list" that keeps track of which other Values are using this Value. A Value can also have an arbitrary number of ValueHandle objects that watch it and listen to RAUW and Destroy events. See llvm/IR/ValueHandle.h for details.
Declared at: llvm/include/llvm/IR/InstrTypes.h:188
Inherits from: Instruction
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
- private void AssertOK()
- protected BinaryOperator(llvm::Instruction::BinaryOps iType, llvm::Value * S1, llvm::Value * S2, llvm::Type * Ty, const llvm::Twine & Name, llvm::Instruction * InsertBefore)
- protected BinaryOperator(llvm::Instruction::BinaryOps iType, llvm::Value * S1, llvm::Value * S2, llvm::Type * Ty, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * Create(llvm::Instruction::BinaryOps Op, llvm::Value * S1, llvm::Value * S2, const llvm::Twine & Name = llvm::Twine(), llvm::Instruction * InsertBefore = nullptr)
- public static llvm::BinaryOperator * Create(llvm::Instruction::BinaryOps Op, llvm::Value * S1, llvm::Value * S2, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * CreateExact(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateExact(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::BasicBlock * BB)
- public static llvm::BinaryOperator * CreateExact(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::Instruction * I)
- public static llvm::BinaryOperator * CreateFAddFMF(llvm::Value * V1, llvm::Value * V2, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateFDivFMF(llvm::Value * V1, llvm::Value * V2, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateFMulFMF(llvm::Value * V1, llvm::Value * V2, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateFRemFMF(llvm::Value * V1, llvm::Value * V2, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateFSubFMF(llvm::Value * V1, llvm::Value * V2, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateNSW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateNSW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::BasicBlock * BB)
- public static llvm::BinaryOperator * CreateNSW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::Instruction * I)
- public static llvm::BinaryOperator * CreateNSWNeg(llvm::Value * Op, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::BinaryOperator * CreateNSWNeg(llvm::Value * Op, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * CreateNUW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::BasicBlock * BB)
- public static llvm::BinaryOperator * CreateNUW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name, llvm::Instruction * I)
- public static llvm::BinaryOperator * CreateNUW(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, const llvm::Twine & Name = "")
- public static llvm::BinaryOperator * CreateNUWNeg(llvm::Value * Op, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::BinaryOperator * CreateNUWNeg(llvm::Value * Op, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * CreateNeg(llvm::Value * Op, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::BinaryOperator * CreateNeg(llvm::Value * Op, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * CreateNot(llvm::Value * Op, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::BinaryOperator * CreateNot(llvm::Value * Op, const llvm::Twine & Name, llvm::BasicBlock * InsertAtEnd)
- public static llvm::BinaryOperator * CreateWithCopiedFlags(llvm::Instruction::BinaryOps Opc, llvm::Value * V1, llvm::Value * V2, llvm::Instruction * CopyO, const llvm::Twine & Name = "", llvm::Instruction * InsertBefore = nullptr)
- public static bool classof(const llvm::Instruction * I)
- public static bool classof(const llvm::Value * V)
- protected llvm::BinaryOperator * cloneImpl() const
- public llvm::Instruction::BinaryOps getOpcode() const
- public bool swapOperands()
Inherited from Instruction:
- public addAnnotationMetadata
- public andIRFlags
- public applyMergedLocation
- public classof
- public clone
- public comesBefore
- public copyFastMathFlags
- public copyFastMathFlags
- public copyIRFlags
- public copyMetadata
- public dropLocation
- public dropPoisonGeneratingFlags
- public dropUndefImplyingAttrsAndUnknownMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public eraseFromParent
- public extractProfMetadata
- public extractProfTotalWeight
- public getAAMetadata
- public getAllMetadata
- public getAllMetadataOtherThanDebugLoc
- public getDebugLoc
- public getFastMathFlags
- public getFunction
- public getFunction
- public getMetadata
- public getMetadata
- public getModule
- public getModule
- public getNextNonDebugInstruction
- public getNextNonDebugInstruction
- public getNumSuccessors
- public getOpcode
- public getOpcodeName
- public getOpcodeName
- public getParent
- public getParent
- public getPrevNonDebugInstruction
- public getPrevNonDebugInstruction
- protected getSubclassData
- public getSuccessor
- public hasAllowContract
- public hasAllowReassoc
- public hasAllowReciprocal
- public hasApproxFunc
- public hasAtomicLoad
- public hasAtomicStore
- public hasMetadata
- public hasMetadata
- public hasMetadata
- public hasMetadataOtherThanDebugLoc
- public hasNoInfs
- public hasNoNaNs
- public hasNoSignedWrap
- public hasNoSignedZeros
- public hasNoUnsignedWrap
- public hasPoisonGeneratingFlags
- public insertAfter
- public insertBefore
- public isArithmeticShift
- public isAssociative
- public isAssociative
- public isAtomic
- public isBinaryOp
- public isBinaryOp
- public isBitwiseLogicOp
- public isBitwiseLogicOp
- public isCast
- public isCast
- public isCommutative
- public isCommutative
- public isDebugOrPseudoInst
- public isEHPad
- public isExact
- public isExceptionalTerminator
- public isExceptionalTerminator
- public isFast
- public isFenceLike
- public isFuncletPad
- public isFuncletPad
- public isIdempotent
- public isIdempotent
- public isIdenticalTo
- public isIdenticalToWhenDefined
- public isIntDivRem
- public isIntDivRem
- public isLaunderOrStripInvariantGroup
- public isLifetimeStartOrEnd
- public isLogicalShift
- public isNilpotent
- public isNilpotent
- public isOnlyUserOfAnyOperand
- public isSafeToRemove
- public isSameOperationAs
- public isShift
- public isShift
- public isTerminator
- public isTerminator
- public isUnaryOp
- public isUnaryOp
- public isUsedOutsideOfBlock
- public isVolatile
- public mayHaveSideEffects
- public mayReadFromMemory
- public mayReadOrWriteMemory
- public mayThrow
- public mayWriteToMemory
- public moveAfter
- public moveBefore
- public moveBefore
- public removeFromParent
- public replaceSuccessorWith
- public setAAMetadata
- public setDebugLoc
- public setFast
- public setFastMathFlags
- public setHasAllowContract
- public setHasAllowReassoc
- public setHasAllowReciprocal
- public setHasApproxFunc
- public setHasNoInfs
- public setHasNoNaNs
- public setHasNoSignedWrap
- public setHasNoSignedZeros
- public setHasNoUnsignedWrap
- public setIsExact
- public setMetadata
- public setMetadata
- protected setSubclassData
- public setSuccessor
- public swapProfMetadata
- public updateLocationAfterHoist
- public user_back
- public user_back
- public willReturn
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
¶void AssertOK()
void AssertOK()
Declared at: llvm/include/llvm/IR/InstrTypes.h:189
¶BinaryOperator(llvm::Instruction::BinaryOps iType,
llvm::Value* S1,
llvm::Value* S2,
llvm::Type* Ty,
const llvm::Twine& Name,
llvm::Instruction* InsertBefore)
BinaryOperator(llvm::Instruction::BinaryOps iType,
llvm::Value* S1,
llvm::Value* S2,
llvm::Type* Ty,
const llvm::Twine& Name,
llvm::Instruction* InsertBefore)
Declared at: llvm/include/llvm/IR/InstrTypes.h:192
Parameters
- llvm::Instruction::BinaryOps iType
- llvm::Value* S1
- llvm::Value* S2
- llvm::Type* Ty
- const llvm::Twine& Name
- llvm::Instruction* InsertBefore
¶BinaryOperator(llvm::Instruction::BinaryOps iType,
llvm::Value* S1,
llvm::Value* S2,
llvm::Type* Ty,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
BinaryOperator(llvm::Instruction::BinaryOps iType,
llvm::Value* S1,
llvm::Value* S2,
llvm::Type* Ty,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/InstrTypes.h:194
Parameters
- llvm::Instruction::BinaryOps iType
- llvm::Value* S1
- llvm::Value* S2
- llvm::Type* Ty
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator* Create(
llvm::Instruction::BinaryOps Op,
llvm::Value* S1,
llvm::Value* S2,
const llvm::Twine& Name = llvm::Twine(),
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator* Create(
llvm::Instruction::BinaryOps Op,
llvm::Value* S1,
llvm::Value* S2,
const llvm::Twine& Name = llvm::Twine(),
llvm::Instruction* InsertBefore = nullptr)
Description
Construct a binary instruction, given the opcode and the two operands. Optionally (if InstBefore is specified) insert the instruction into a BasicBlock right before the specified instruction. The specified Instruction is allowed to be a dereferenced end iterator.
Declared at: llvm/include/llvm/IR/InstrTypes.h:215
Parameters
- llvm::Instruction::BinaryOps Op
- llvm::Value* S1
- llvm::Value* S2
- const llvm::Twine& Name = llvm::Twine()
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::BinaryOperator* Create(
llvm::Instruction::BinaryOps Op,
llvm::Value* S1,
llvm::Value* S2,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
static llvm::BinaryOperator* Create(
llvm::Instruction::BinaryOps Op,
llvm::Value* S1,
llvm::Value* S2,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Description
Construct a binary instruction, given the opcode and the two operands. Also automatically insert this instruction to the end of the BasicBlock specified.
Declared at: llvm/include/llvm/IR/InstrTypes.h:223
Parameters
- llvm::Instruction::BinaryOps Op
- llvm::Value* S1
- llvm::Value* S2
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:321
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
Declared at: llvm/include/llvm/IR/InstrTypes.h:327
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::BasicBlock* BB
¶static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
static llvm::BinaryOperator* CreateExact(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/InstrTypes.h:333
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::Instruction* I
¶static llvm::BinaryOperator* CreateFAddFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateFAddFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:257
Parameters
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* FMFSource
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateFDivFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateFDivFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:272
Parameters
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* FMFSource
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateFMulFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateFMulFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:267
Parameters
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* FMFSource
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateFRemFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateFRemFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:277
Parameters
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* FMFSource
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateFSubFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateFSubFMF(
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* FMFSource,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:262
Parameters
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* FMFSource
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:283
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
Declared at: llvm/include/llvm/IR/InstrTypes.h:289
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::BasicBlock* BB
¶static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
static llvm::BinaryOperator* CreateNSW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/InstrTypes.h:295
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::Instruction* I
¶static llvm::BinaryOperator* CreateNSWNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator* CreateNSWNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/InstrTypes.h:379
Parameters
- llvm::Value* Op
- const llvm::Twine& Name = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::BinaryOperator* CreateNSWNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
static llvm::BinaryOperator* CreateNSWNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/InstrTypes.h:381
Parameters
- llvm::Value* Op
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::BasicBlock* BB)
Declared at: llvm/include/llvm/IR/InstrTypes.h:308
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::BasicBlock* BB
¶static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name,
llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/InstrTypes.h:314
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name
- llvm::Instruction* I
¶static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
static llvm::BinaryOperator* CreateNUW(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/InstrTypes.h:302
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- const llvm::Twine& Name = ""
¶static llvm::BinaryOperator* CreateNUWNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator* CreateNUWNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/InstrTypes.h:383
Parameters
- llvm::Value* Op
- const llvm::Twine& Name = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::BinaryOperator* CreateNUWNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
static llvm::BinaryOperator* CreateNUWNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/InstrTypes.h:385
Parameters
- llvm::Value* Op
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator* CreateNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator* CreateNeg(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
Description
Helper functions to construct and inspect unary operations (NEG and NOT) via binary operators SUB and XOR: Create the NEG and NOT instructions out of SUB and XOR instructions.
Declared at: llvm/include/llvm/IR/InstrTypes.h:375
Parameters
- llvm::Value* Op
- const llvm::Twine& Name = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::BinaryOperator* CreateNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
static llvm::BinaryOperator* CreateNeg(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/InstrTypes.h:377
Parameters
- llvm::Value* Op
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator* CreateNot(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator* CreateNot(
llvm::Value* Op,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/InstrTypes.h:387
Parameters
- llvm::Value* Op
- const llvm::Twine& Name = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::BinaryOperator* CreateNot(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
static llvm::BinaryOperator* CreateNot(
llvm::Value* Op,
const llvm::Twine& Name,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/InstrTypes.h:389
Parameters
- llvm::Value* Op
- const llvm::Twine& Name
- llvm::BasicBlock* InsertAtEnd
¶static llvm::BinaryOperator*
CreateWithCopiedFlags(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* CopyO,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::BinaryOperator*
CreateWithCopiedFlags(
llvm::Instruction::BinaryOps Opc,
llvm::Value* V1,
llvm::Value* V2,
llvm::Instruction* CopyO,
const llvm::Twine& Name = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/InstrTypes.h:249
Parameters
- llvm::Instruction::BinaryOps Opc
- llvm::Value* V1
- llvm::Value* V2
- llvm::Instruction* CopyO
- const llvm::Twine& Name = ""
- llvm::Instruction* InsertBefore = nullptr
¶static bool classof(const llvm::Instruction* I)
static bool classof(const llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/InstrTypes.h:404
Parameters
- const llvm::Instruction* I
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/InstrTypes.h:407
Parameters
- const llvm::Value* V
¶llvm::BinaryOperator* cloneImpl() const
llvm::BinaryOperator* cloneImpl() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:200
¶llvm::Instruction::BinaryOps getOpcode() const
llvm::Instruction::BinaryOps getOpcode() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:392
¶bool swapOperands()
bool swapOperands()
Description
Exchange the two operands to this instruction. This instruction is safe to use on any binary instruction and does not modify the semantics of the instruction. If the instruction cannot be reversed (ie, it's a Div), then return true.
Declared at: llvm/include/llvm/IR/InstrTypes.h:401