LLVM 20.0.0git
Modules | Functions

Functions in this group relate to the inspection and manipulation of individual instructions. More...

Collaboration diagram for Instructions:

Modules

 Call Sites and Invocations
 Functions in this group apply to instructions that refer to call sites and invocations.
 
 Terminators
 Functions in this group only apply to instructions for which LLVMIsATerminatorInst returns true.
 
 Allocas
 Functions in this group only apply to instructions that map to llvm::AllocaInst instances.
 
 GEPs
 Functions in this group only apply to instructions that map to llvm::GetElementPtrInst instances.
 
 PHI Nodes
 Functions in this group only apply to instructions that map to llvm::PHINode instances.
 
 ExtractValue
 
 InsertValue
 Functions in this group only apply to instructions that map to llvm::ExtractValue and llvm::InsertValue instances.
 

Functions

int LLVMHasMetadata (LLVMValueRef Val)
 Determine whether an instruction has any metadata attached.
 
LLVMValueRef LLVMGetMetadata (LLVMValueRef Val, unsigned KindID)
 Return metadata associated with an instruction value.
 
void LLVMSetMetadata (LLVMValueRef Val, unsigned KindID, LLVMValueRef Node)
 Set metadata associated with an instruction value.
 
LLVMValueMetadataEntryLLVMInstructionGetAllMetadataOtherThanDebugLoc (LLVMValueRef Instr, size_t *NumEntries)
 Returns the metadata associated with an instruction value, but filters out all the debug locations.
 
LLVMBasicBlockRef LLVMGetInstructionParent (LLVMValueRef Inst)
 Obtain the basic block to which an instruction belongs.
 
LLVMValueRef LLVMGetNextInstruction (LLVMValueRef Inst)
 Obtain the instruction that occurs after the one specified.
 
LLVMValueRef LLVMGetPreviousInstruction (LLVMValueRef Inst)
 Obtain the instruction that occurred before this one.
 
void LLVMInstructionRemoveFromParent (LLVMValueRef Inst)
 Remove an instruction.
 
void LLVMInstructionEraseFromParent (LLVMValueRef Inst)
 Remove and delete an instruction.
 
void LLVMDeleteInstruction (LLVMValueRef Inst)
 Delete an instruction.
 
LLVMOpcode LLVMGetInstructionOpcode (LLVMValueRef Inst)
 Obtain the code opcode for an individual instruction.
 
LLVMIntPredicate LLVMGetICmpPredicate (LLVMValueRef Inst)
 Obtain the predicate of an instruction.
 
LLVMRealPredicate LLVMGetFCmpPredicate (LLVMValueRef Inst)
 Obtain the float predicate of an instruction.
 
LLVMValueRef LLVMInstructionClone (LLVMValueRef Inst)
 Create a copy of 'this' instruction that is identical in all ways except the following:
 
LLVMValueRef LLVMIsATerminatorInst (LLVMValueRef Inst)
 Determine whether an instruction is a terminator.
 
LLVMDbgRecordRef LLVMGetFirstDbgRecord (LLVMValueRef Inst)
 Obtain the first debug record attached to an instruction.
 
LLVMDbgRecordRef LLVMGetLastDbgRecord (LLVMValueRef Inst)
 Obtain the last debug record attached to an instruction.
 
LLVMDbgRecordRef LLVMGetNextDbgRecord (LLVMDbgRecordRef DbgRecord)
 Obtain the next DbgRecord in the sequence or NULL if there are no more.
 
LLVMDbgRecordRef LLVMGetPreviousDbgRecord (LLVMDbgRecordRef DbgRecord)
 Obtain the previous DbgRecord in the sequence or NULL if there are no more.
 

Detailed Description

Functions in this group relate to the inspection and manipulation of individual instructions.

In the C++ API, an instruction is modeled by llvm::Instruction. This class has a large number of descendents. llvm::Instruction is a llvm::Value and in the C API, instructions are modeled by LLVMValueRef.

This group also contains sub-groups which operate on specific llvm::Instruction types, e.g. llvm::CallInst.

Function Documentation

◆ LLVMDeleteInstruction()

void LLVMDeleteInstruction ( LLVMValueRef  Inst)

Delete an instruction.

The instruction specified is deleted. It must have previously been removed from its containing building block.

See also
llvm::Value::deleteValue()

Definition at line 2944 of file Core.cpp.

◆ LLVMGetFCmpPredicate()

LLVMRealPredicate LLVMGetFCmpPredicate ( LLVMValueRef  Inst)

Obtain the float predicate of an instruction.

This is only valid for instructions that correspond to llvm::FCmpInst.

See also
llvm::FCmpInst::getPredicate()

Definition at line 2954 of file Core.cpp.

References I, and unwrap().

◆ LLVMGetFirstDbgRecord()

LLVMDbgRecordRef LLVMGetFirstDbgRecord ( LLVMValueRef  Inst)

Obtain the first debug record attached to an instruction.

Use LLVMGetNextDbgRecord() and LLVMGetPreviousDbgRecord() to traverse the sequence of DbgRecords.

Return the first DbgRecord attached to Inst or NULL if there are none.

See also
llvm::Instruction::getDbgRecordRange()

Definition at line 2977 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMGetICmpPredicate()

LLVMIntPredicate LLVMGetICmpPredicate ( LLVMValueRef  Inst)

Obtain the predicate of an instruction.

This is only valid for instructions that correspond to llvm::ICmpInst.

See also
llvm::ICmpInst::getPredicate()

Definition at line 2948 of file Core.cpp.

References I, and unwrap().

◆ LLVMGetInstructionOpcode()

LLVMOpcode LLVMGetInstructionOpcode ( LLVMValueRef  Inst)

Obtain the code opcode for an individual instruction.

See also
llvm::Instruction::getOpCode()

Definition at line 2960 of file Core.cpp.

References llvm::CallingConv::C, map_to_llvmopcode(), and unwrap().

◆ LLVMGetInstructionParent()

LLVMBasicBlockRef LLVMGetInstructionParent ( LLVMValueRef  Inst)

Obtain the basic block to which an instruction belongs.

See also
llvm::Instruction::getParent()

Definition at line 2900 of file Core.cpp.

References getParent(), and llvm::wrap().

◆ LLVMGetLastDbgRecord()

LLVMDbgRecordRef LLVMGetLastDbgRecord ( LLVMValueRef  Inst)

Obtain the last debug record attached to an instruction.

Return the last DbgRecord attached to Inst or NULL if there are none.

See also
llvm::Instruction::getDbgRecordRange()

Definition at line 2985 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMGetMetadata()

LLVMValueRef LLVMGetMetadata ( LLVMValueRef  Val,
unsigned  KindID 
)

Return metadata associated with an instruction value.

Definition at line 1080 of file Core.cpp.

References assert(), llvm::MetadataAsValue::get(), I, and llvm::wrap().

◆ LLVMGetNextDbgRecord()

LLVMDbgRecordRef LLVMGetNextDbgRecord ( LLVMDbgRecordRef  DbgRecord)

Obtain the next DbgRecord in the sequence or NULL if there are no more.

See also
llvm::Instruction::getDbgRecordRange()

Definition at line 2993 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMGetNextInstruction()

LLVMValueRef LLVMGetNextInstruction ( LLVMValueRef  Inst)

Obtain the instruction that occurs after the one specified.

The next instruction will be from the same basic block.

If this is the last instruction in a basic block, NULL will be returned.

Definition at line 2920 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMGetPreviousDbgRecord()

LLVMDbgRecordRef LLVMGetPreviousDbgRecord ( LLVMDbgRecordRef  DbgRecord)

Obtain the previous DbgRecord in the sequence or NULL if there are no more.

See also
llvm::Instruction::getDbgRecordRange()

Definition at line 3001 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMGetPreviousInstruction()

LLVMValueRef LLVMGetPreviousInstruction ( LLVMValueRef  Inst)

Obtain the instruction that occurred before this one.

If the instruction is the first instruction in a basic block, NULL will be returned.

Definition at line 2928 of file Core.cpp.

References I, and llvm::wrap().

◆ LLVMHasMetadata()

int LLVMHasMetadata ( LLVMValueRef  Val)

Determine whether an instruction has any metadata attached.

Definition at line 1076 of file Core.cpp.

◆ LLVMInstructionClone()

LLVMValueRef LLVMInstructionClone ( LLVMValueRef  Inst)

Create a copy of 'this' instruction that is identical in all ways except the following:

  • The instruction has no parent
  • The instruction has no name
See also
llvm::Instruction::clone()

Definition at line 2966 of file Core.cpp.

References llvm::CallingConv::C, unwrap(), and llvm::wrap().

◆ LLVMInstructionEraseFromParent()

void LLVMInstructionEraseFromParent ( LLVMValueRef  Inst)

Remove and delete an instruction.

The instruction specified is removed from its containing building block and then deleted.

See also
llvm::Instruction::eraseFromParent()

Definition at line 2940 of file Core.cpp.

◆ LLVMInstructionGetAllMetadataOtherThanDebugLoc()

LLVMValueMetadataEntry * LLVMInstructionGetAllMetadataOtherThanDebugLoc ( LLVMValueRef  Instr,
size_t *  NumEntries 
)

Returns the metadata associated with an instruction value, but filters out all the debug locations.

See also
llvm::Instruction::getAllMetadataOtherThanDebugLoc()

Definition at line 1133 of file Core.cpp.

References llvm_getMetadata().

◆ LLVMInstructionRemoveFromParent()

void LLVMInstructionRemoveFromParent ( LLVMValueRef  Inst)

Remove an instruction.

The instruction specified is removed from its containing building block but is kept alive.

See also
llvm::Instruction::removeFromParent()

Definition at line 2936 of file Core.cpp.

◆ LLVMIsATerminatorInst()

LLVMValueRef LLVMIsATerminatorInst ( LLVMValueRef  Inst)

Determine whether an instruction is a terminator.

This routine is named to be compatible with historical functions that did this by querying the underlying C++ type.

See also
llvm::Instruction::isTerminator()

Definition at line 2972 of file Core.cpp.

References I, unwrap(), and llvm::wrap().

◆ LLVMSetMetadata()

void LLVMSetMetadata ( LLVMValueRef  Val,
unsigned  KindID,
LLVMValueRef  Node 
)

Set metadata associated with an instruction value.

Definition at line 1102 of file Core.cpp.

References extractMDNode(), and N.