LLVM API Documentation
#include <Instructions.h>
Public Member Functions | |
DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value) | |
Provide fast operand accessors. More... | |
unsigned | getNumArgOperands () const |
Value * | getArgOperand (unsigned i) const |
void | setArgOperand (unsigned i, Value *v) |
CallingConv::ID | getCallingConv () const |
void | setCallingConv (CallingConv::ID CC) |
const AttributeSet & | getAttributes () const |
void | setAttributes (const AttributeSet &Attrs) |
void | addAttribute (unsigned i, Attribute::AttrKind attr) |
addAttribute - adds the attribute to the list of attributes. More... | |
void | removeAttribute (unsigned i, Attribute attr) |
removeAttribute - removes the attribute from the list of attributes. More... | |
bool | hasFnAttr (Attribute::AttrKind A) const |
Determine whether this call has the given attribute. More... | |
bool | paramHasAttr (unsigned i, Attribute::AttrKind A) const |
Determine whether the call or the callee has the given attributes. More... | |
unsigned | getParamAlignment (unsigned i) const |
Extract the alignment for a call or parameter (0=unknown). More... | |
bool | isNoBuiltin () const |
Return true if the call should not be treated as a call to a builtin. More... | |
bool | isNoInline () const |
Return true if the call should not be inlined. More... | |
void | setIsNoInline () |
bool | doesNotAccessMemory () const |
Determine if the call does not access memory. More... | |
void | setDoesNotAccessMemory () |
bool | onlyReadsMemory () const |
Determine if the call does not access or only reads memory. More... | |
void | setOnlyReadsMemory () |
bool | doesNotReturn () const |
Determine if the call cannot return. More... | |
void | setDoesNotReturn () |
bool | doesNotThrow () const |
Determine if the call cannot unwind. More... | |
void | setDoesNotThrow () |
bool | hasStructRetAttr () const |
Determine if the call returns a structure through first pointer argument. More... | |
bool | hasByValArgument () const |
Determine if any call argument is an aggregate passed by value. More... | |
Function * | getCalledFunction () const |
const Value * | getCalledValue () const |
Value * | getCalledValue () |
void | setCalledFunction (Value *Fn) |
setCalledFunction - Set the function called. More... | |
BasicBlock * | getNormalDest () const |
BasicBlock * | getUnwindDest () const |
void | setNormalDest (BasicBlock *B) |
void | setUnwindDest (BasicBlock *B) |
LandingPadInst * | getLandingPadInst () const |
BasicBlock * | getSuccessor (unsigned i) const |
void | setSuccessor (unsigned idx, BasicBlock *NewSucc) |
unsigned | getNumSuccessors () const |
![]() | |
unsigned | getNumSuccessors () const |
BasicBlock * | getSuccessor (unsigned idx) const |
void | setSuccessor (unsigned idx, BasicBlock *B) |
![]() | |
~Instruction () | |
Instruction * | use_back () |
const Instruction * | use_back () const |
const BasicBlock * | getParent () const |
BasicBlock * | getParent () |
void | removeFromParent () |
void | eraseFromParent () |
void | insertBefore (Instruction *InsertPos) |
void | insertAfter (Instruction *InsertPos) |
void | moveBefore (Instruction *MovePos) |
unsigned | getOpcode () const |
getOpcode() returns a member of one of the enums like Instruction::Add. More... | |
const char * | getOpcodeName () const |
bool | isTerminator () const |
bool | isBinaryOp () const |
bool | isShift () |
bool | isCast () const |
bool | isLogicalShift () const |
bool | isArithmeticShift () const |
isArithmeticShift - Return true if this is an arithmetic shift right. More... | |
bool | hasMetadata () const |
bool | hasMetadataOtherThanDebugLoc () const |
MDNode * | getMetadata (unsigned KindID) const |
MDNode * | getMetadata (StringRef Kind) const |
void | getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
void | getAllMetadataOtherThanDebugLoc (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
void | setMetadata (unsigned KindID, MDNode *Node) |
void | setMetadata (StringRef Kind, MDNode *Node) |
void | setDebugLoc (const DebugLoc &Loc) |
setDebugLoc - Set the debug location information for this instruction. More... | |
const DebugLoc & | getDebugLoc () const |
getDebugLoc - Return the debug location for this node as a DebugLoc. More... | |
void | setHasUnsafeAlgebra (bool B) |
void | setHasNoNaNs (bool B) |
void | setHasNoInfs (bool B) |
void | setHasNoSignedZeros (bool B) |
void | setHasAllowReciprocal (bool B) |
void | setFastMathFlags (FastMathFlags FMF) |
bool | hasUnsafeAlgebra () const |
Determine whether the unsafe-algebra flag is set. More... | |
bool | hasNoNaNs () const |
Determine whether the no-NaNs flag is set. More... | |
bool | hasNoInfs () const |
Determine whether the no-infs flag is set. More... | |
bool | hasNoSignedZeros () const |
Determine whether the no-signed-zeros flag is set. More... | |
bool | hasAllowReciprocal () const |
Determine whether the allow-reciprocal flag is set. More... | |
FastMathFlags | getFastMathFlags () const |
void | copyFastMathFlags (const Instruction *I) |
Copy I's fast-math flags. More... | |
bool | isAssociative () const |
bool | isCommutative () const |
bool | isIdempotent () const |
bool | isNilpotent () const |
bool | mayWriteToMemory () const |
bool | mayReadFromMemory () const |
bool | mayReadOrWriteMemory () const |
bool | mayThrow () const |
bool | mayReturn () const |
bool | mayHaveSideEffects () const |
Instruction * | clone () const |
bool | isIdenticalTo (const Instruction *I) const |
bool | isIdenticalToWhenDefined (const Instruction *I) const |
bool | isSameOperationAs (const Instruction *I, unsigned flags=0) const |
Determine if one instruction is the same operation as another. More... | |
bool | isUsedOutsideOfBlock (const BasicBlock *BB) const |
![]() | |
~User () | |
void | operator delete (void *Usr) |
operator delete - free memory allocated for User and Use objects More... | |
void | operator delete (void *, unsigned) |
placement delete - required by std, but never called. More... | |
void | operator delete (void *, unsigned, bool) |
placement delete - required by std, but never called. More... | |
Value * | getOperand (unsigned i) const |
void | setOperand (unsigned i, Value *Val) |
const Use & | getOperandUse (unsigned i) const |
Use & | getOperandUse (unsigned i) |
unsigned | getNumOperands () const |
op_iterator | op_begin () |
const_op_iterator | op_begin () const |
op_iterator | op_end () |
const_op_iterator | op_end () const |
value_op_iterator | value_op_begin () |
value_op_iterator | value_op_end () |
void | dropAllReferences () |
void | replaceUsesOfWith (Value *From, Value *To) |
![]() | |
virtual | ~Value () |
void | dump () const |
dump - Support for debugging, callable in GDB: V->dump() More... | |
void | print (raw_ostream &O, AssemblyAnnotationWriter *AAW=0) const |
Type * | getType () const |
LLVMContext & | getContext () const |
All values hold a context through their type. More... | |
bool | hasName () const |
ValueName * | getValueName () const |
void | setValueName (ValueName *VN) |
StringRef | getName () const |
void | setName (const Twine &Name) |
void | takeName (Value *V) |
void | replaceAllUsesWith (Value *V) |
bool | use_empty () const |
use_iterator | use_begin () |
const_use_iterator | use_begin () const |
use_iterator | use_end () |
const_use_iterator | use_end () const |
User * | use_back () |
const User * | use_back () const |
bool | hasOneUse () const |
bool | hasNUses (unsigned N) const |
bool | hasNUsesOrMore (unsigned N) const |
bool | isUsedInBasicBlock (const BasicBlock *BB) const |
unsigned | getNumUses () const |
void | addUse (Use &U) |
unsigned | getValueID () const |
unsigned | getRawSubclassOptionalData () const |
void | clearSubclassOptionalData () |
bool | hasSameSubclassOptionalData (const Value *V) const |
void | intersectOptionalDataWith (const Value *V) |
bool | hasValueHandle () const |
Value * | stripPointerCasts () |
Strips off any unneeded pointer casts, all-zero GEPs and aliases from the specified value, returning the original uncasted value. More... | |
const Value * | stripPointerCasts () const |
Value * | stripPointerCastsNoFollowAliases () |
Strips off any unneeded pointer casts and all-zero GEPs from the specified value, returning the original uncasted value. More... | |
const Value * | stripPointerCastsNoFollowAliases () const |
Value * | stripInBoundsConstantOffsets () |
Strips off unneeded pointer casts and all-constant GEPs from the specified value, returning the original pointer value. More... | |
const Value * | stripInBoundsConstantOffsets () const |
Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
Strips like stripInBoundsConstantOffsets but also accumulates the constant offset stripped. More... | |
const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
Value * | stripInBoundsOffsets () |
Strips off unneeded pointer casts and any in-bounds offsets from the specified value, returning the original pointer value. More... | |
const Value * | stripInBoundsOffsets () const |
bool | isDereferenceablePointer () const |
Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
void | mutateType (Type *Ty) |
![]() | |
Instruction * | getPrevNode () |
Get the previous node, or 0 for the list head. More... | |
const Instruction * | getPrevNode () const |
Get the previous node, or 0 for the list head. More... | |
Instruction * | getNextNode () |
Get the next node, or 0 for the list tail. More... | |
const Instruction * | getNextNode () const |
Get the next node, or 0 for the list tail. More... | |
Static Public Member Functions | |
static InvokeInst * | Create (Value *Func, BasicBlock *IfNormal, BasicBlock *IfException, ArrayRef< Value * > Args, const Twine &NameStr="", Instruction *InsertBefore=0) |
static InvokeInst * | Create (Value *Func, BasicBlock *IfNormal, BasicBlock *IfException, ArrayRef< Value * > Args, const Twine &NameStr, BasicBlock *InsertAtEnd) |
static bool | classof (const Instruction *I) |
static bool | classof (const Value *V) |
![]() | |
static bool | classof (const Instruction *I) |
static bool | classof (const Value *V) |
![]() | |
static const char * | getOpcodeName (unsigned OpCode) |
static bool | isTerminator (unsigned OpCode) |
static bool | isBinaryOp (unsigned Opcode) |
static bool | isShift (unsigned Opcode) |
Determine if the Opcode is one of the shift instructions. More... | |
static bool | isCast (unsigned OpCode) |
Determine if the OpCode is one of the CastInst instructions. More... | |
static bool | isAssociative (unsigned op) |
static bool | isCommutative (unsigned op) |
static bool | isIdempotent (unsigned op) |
static bool | isNilpotent (unsigned op) |
static bool | classof (const Value *V) |
Methods for support type inquiry through isa, cast, and dyn_cast: More... | |
![]() | |
static bool | classof (const Value *V) |
Protected Member Functions | |
virtual InvokeInst * | clone_impl () const |
![]() | |
TerminatorInst (Type *Ty, Instruction::TermOps iType, Use *Ops, unsigned NumOps, Instruction *InsertBefore=0) | |
TerminatorInst (Type *Ty, Instruction::TermOps iType, Use *Ops, unsigned NumOps, BasicBlock *InsertAtEnd) | |
~TerminatorInst () | |
![]() | |
void | setInstructionSubclassData (unsigned short D) |
unsigned | getSubclassDataFromInstruction () const |
Instruction (Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, Instruction *InsertBefore=0) | |
Instruction (Type *Ty, unsigned iType, Use *Ops, unsigned NumOps, BasicBlock *InsertAtEnd) | |
![]() | |
void * | operator new (size_t s, unsigned Us) |
User (Type *ty, unsigned vty, Use *OpList, unsigned NumOps) | |
Use * | allocHungoffUses (unsigned) const |
void | dropHungoffUses () |
template<int Idx> | |
Use & | Op () |
template<int Idx> | |
const Use & | Op () const |
![]() | |
virtual void | printCustom (raw_ostream &O) const |
Value (Type *Ty, unsigned scid) | |
unsigned short | getSubclassDataFromValue () const |
void | setValueSubclassData (unsigned short D) |
![]() | |
ilist_node () | |
InvokeInst - Invoke instruction. The SubclassData field is used to hold the calling convention of the call.
Definition at line 2841 of file Instructions.h.
void InvokeInst::addAttribute | ( | unsigned | i, |
Attribute::AttrKind | attr | ||
) |
addAttribute - adds the attribute to the list of attributes.
Definition at line 593 of file Instructions.cpp.
References llvm::AttributeSet::addAttribute(), getAttributes(), llvm::Value::getContext(), and setAttributes().
|
inlinestatic |
Definition at line 3033 of file Instructions.h.
References llvm::Instruction::getOpcode().
Definition at line 3036 of file Instructions.h.
|
protectedvirtual |
Implements llvm::TerminatorInst.
Definition at line 3673 of file Instructions.cpp.
References llvm::User::getNumOperands().
|
inlinestatic |
Definition at line 2863 of file Instructions.h.
References llvm::ArrayRef< T >::size().
Referenced by llvm::IRBuilder< true, TargetFolder >::CreateInvoke(), llvm::IRBuilder< true, TargetFolder >::CreateInvoke3(), HandleCallsInBlockInlinedThroughInvoke(), and llvm::InstCombiner::visitAllocSite().
|
inlinestatic |
Definition at line 2871 of file Instructions.h.
References llvm::ArrayRef< T >::size().
llvm::InvokeInst::DECLARE_TRANSPARENT_OPERAND_ACCESSORS | ( | Value | ) |
Provide fast operand accessors.
|
inline |
Determine if the call does not access memory.
Definition at line 2946 of file Instructions.h.
References llvm::Attribute::ReadNone.
|
inline |
Determine if the call cannot return.
Definition at line 2962 of file Instructions.h.
References llvm::Attribute::NoReturn.
|
inline |
Determine if the call cannot unwind.
Definition at line 2968 of file Instructions.h.
References llvm::Attribute::NoUnwind.
getArgOperand/setArgOperand - Return/set the i-th invoke argument.
Definition at line 2889 of file Instructions.h.
|
inline |
getAttributes - Return the parameter attributes for this invoke.
Definition at line 2903 of file Instructions.h.
Referenced by addAttribute(), changeToCall(), removeAttribute(), and WriteInstruction().
|
inline |
getCalledFunction - Return the function called, or null if this is an indirect function invocation.
Definition at line 2988 of file Instructions.h.
References llvm::dyn_cast().
Referenced by paramHasAttr().
|
inline |
getCalledValue - Get a pointer to the function that is invoked by this instruction
Definition at line 2994 of file Instructions.h.
Referenced by changeToCall(), and WriteInstruction().
|
inline |
Definition at line 2995 of file Instructions.h.
|
inline |
getCallingConv/setCallingConv - Get or set the calling convention of this function call.
Definition at line 2894 of file Instructions.h.
Referenced by changeToCall(), and WriteInstruction().
LandingPadInst * InvokeInst::getLandingPadInst | ( | ) | const |
getLandingPadInst - Get the landingpad instruction from the landing pad block (the unwind destination).
Definition at line 607 of file Instructions.cpp.
References llvm::BasicBlock::getFirstNonPHI(), and getUnwindDest().
Referenced by HandleInlinedInvoke().
|
inline |
Definition at line 3003 of file Instructions.h.
Referenced by changeToCall(), llvm::DemoteRegToStack(), llvm::DominatorTree::dominates(), llvm::InlineFunction(), and WriteInstruction().
|
inline |
getNumArgOperands - Return the number of invoke arguments.
Definition at line 2885 of file Instructions.h.
|
inline |
Definition at line 3030 of file Instructions.h.
Extract the alignment for a call or parameter (0=unknown).
Definition at line 2926 of file Instructions.h.
References llvm::AttributeSet::getParamAlignment().
|
inline |
Definition at line 3020 of file Instructions.h.
|
inline |
Definition at line 3006 of file Instructions.h.
Referenced by changeToCall(), getLandingPadInst(), HandleInlinedInvoke(), llvm::InlineFunction(), and WriteInstruction().
|
inline |
Determine if any call argument is an aggregate passed by value.
Definition at line 2981 of file Instructions.h.
References llvm::Attribute::ByVal, and llvm::AttributeSet::hasAttrSomewhere().
|
inline |
Determine whether this call has the given attribute.
Definition at line 2916 of file Instructions.h.
References llvm::Attribute::NoBuiltin.
|
inline |
Determine if the call returns a structure through first pointer argument.
Definition at line 2975 of file Instructions.h.
References llvm::Attribute::StructRet.
|
inline |
Return true if the call should not be treated as a call to a builtin.
Definition at line 2932 of file Instructions.h.
References llvm::Attribute::Builtin, and llvm::Attribute::NoBuiltin.
|
inline |
Return true if the call should not be inlined.
Definition at line 2940 of file Instructions.h.
References llvm::Attribute::NoInline.
|
inline |
Determine if the call does not access or only reads memory.
Definition at line 2954 of file Instructions.h.
References llvm::Attribute::ReadOnly.
bool InvokeInst::paramHasAttr | ( | unsigned | i, |
Attribute::AttrKind | A | ||
) | const |
Determine whether the call or the callee has the given attributes.
Definition at line 585 of file Instructions.cpp.
References F(), getCalledFunction(), and llvm::AttributeSet::hasAttribute().
removeAttribute - removes the attribute from the list of attributes.
Definition at line 599 of file Instructions.cpp.
References getAttributes(), llvm::Value::getContext(), llvm::AttributeSet::removeAttributes(), and setAttributes().
Definition at line 2890 of file Instructions.h.
|
inline |
setAttributes - Set the parameter attributes for this invoke.
Definition at line 2907 of file Instructions.h.
Referenced by addAttribute(), and removeAttribute().
|
inline |
setCalledFunction - Set the function called.
Definition at line 2998 of file Instructions.h.
|
inline |
Definition at line 2897 of file Instructions.h.
|
inline |
Definition at line 2949 of file Instructions.h.
References llvm::Attribute::ReadNone.
|
inline |
Definition at line 2963 of file Instructions.h.
References llvm::Attribute::NoReturn.
|
inline |
Definition at line 2969 of file Instructions.h.
References llvm::Attribute::NoUnwind.
|
inline |
Definition at line 2941 of file Instructions.h.
References llvm::Attribute::NoInline.
|
inline |
Definition at line 3009 of file Instructions.h.
|
inline |
Definition at line 2957 of file Instructions.h.
References llvm::Attribute::ReadOnly.
|
inline |
Definition at line 3025 of file Instructions.h.
|
inline |
Definition at line 3012 of file Instructions.h.