LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
Basic Block
Collaboration diagram for Basic Block:

Functions

LLVMValueRef LLVMBasicBlockAsValue (LLVMBasicBlockRef BB)
 
LLVMBool LLVMValueIsBasicBlock (LLVMValueRef Val)
 
LLVMBasicBlockRef LLVMValueAsBasicBlock (LLVMValueRef Val)
 
LLVMValueRef LLVMGetBasicBlockParent (LLVMBasicBlockRef BB)
 
LLVMValueRef LLVMGetBasicBlockTerminator (LLVMBasicBlockRef BB)
 
unsigned LLVMCountBasicBlocks (LLVMValueRef Fn)
 
void LLVMGetBasicBlocks (LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks)
 
LLVMBasicBlockRef LLVMGetFirstBasicBlock (LLVMValueRef Fn)
 
LLVMBasicBlockRef LLVMGetLastBasicBlock (LLVMValueRef Fn)
 
LLVMBasicBlockRef LLVMGetNextBasicBlock (LLVMBasicBlockRef BB)
 
LLVMBasicBlockRef LLVMGetPreviousBasicBlock (LLVMBasicBlockRef BB)
 
LLVMBasicBlockRef LLVMGetEntryBasicBlock (LLVMValueRef Fn)
 
LLVMBasicBlockRef LLVMAppendBasicBlockInContext (LLVMContextRef C, LLVMValueRef Fn, const char *Name)
 
LLVMBasicBlockRef LLVMAppendBasicBlock (LLVMValueRef Fn, const char *Name)
 
LLVMBasicBlockRef LLVMInsertBasicBlockInContext (LLVMContextRef C, LLVMBasicBlockRef BB, const char *Name)
 
LLVMBasicBlockRef LLVMInsertBasicBlock (LLVMBasicBlockRef InsertBeforeBB, const char *Name)
 
void LLVMDeleteBasicBlock (LLVMBasicBlockRef BB)
 
void LLVMRemoveBasicBlockFromParent (LLVMBasicBlockRef BB)
 
void LLVMMoveBasicBlockBefore (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)
 
void LLVMMoveBasicBlockAfter (LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)
 
LLVMValueRef LLVMGetFirstInstruction (LLVMBasicBlockRef BB)
 
LLVMValueRef LLVMGetLastInstruction (LLVMBasicBlockRef BB)
 

Detailed Description

A basic block represents a single entry single exit section of code. Basic blocks contain a list of instructions which form the body of the block.

Basic blocks belong to functions. They have the type of label.

Basic blocks are themselves values. However, the C API models them as LLVMBasicBlockRef.

See Also
llvm::BasicBlock

Function Documentation

LLVMBasicBlockRef LLVMAppendBasicBlock ( LLVMValueRef  Fn,
const char *  Name 
)

Append a basic block to the end of a function using the global context.

See Also
llvm::BasicBlock::Create()

Definition at line 1696 of file Core.cpp.

References LLVMAppendBasicBlockInContext(), and LLVMGetGlobalContext().

LLVMBasicBlockRef LLVMAppendBasicBlockInContext ( LLVMContextRef  C,
LLVMValueRef  Fn,
const char *  Name 
)

Append a basic block to the end of a function.

See Also
llvm::BasicBlock::Create()

Definition at line 1690 of file Core.cpp.

References llvm::BasicBlock::Create(), llvm::unwrap(), and llvm::wrap().

Referenced by LLVMAppendBasicBlock().

LLVMValueRef LLVMBasicBlockAsValue ( LLVMBasicBlockRef  BB)

Convert a basic block instance to a value type.

Definition at line 1624 of file Core.cpp.

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

unsigned LLVMCountBasicBlocks ( LLVMValueRef  Fn)

Obtain the number of basic blocks in a function.

Parameters
FnFunction value to operate on.

Definition at line 1644 of file Core.cpp.

void LLVMDeleteBasicBlock ( LLVMBasicBlockRef  BB)

Remove a basic block from a function and delete it.

This deletes the basic block from its containing function and deletes the basic block itself.

See Also
llvm::BasicBlock::eraseFromParent()

Definition at line 1712 of file Core.cpp.

References llvm::unwrap().

LLVMValueRef LLVMGetBasicBlockParent ( LLVMBasicBlockRef  BB)

Obtain the function to which a basic block belongs.

See Also
llvm::BasicBlock::getParent()

Definition at line 1636 of file Core.cpp.

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

void LLVMGetBasicBlocks ( LLVMValueRef  Fn,
LLVMBasicBlockRef BasicBlocks 
)

Obtain all of the basic blocks in a function.

This operates on a function value. The BasicBlocks parameter is a pointer to a pre-allocated array of LLVMBasicBlockRef of at least LLVMCountBasicBlocks() in length. This array is populated with LLVMBasicBlockRef instances.

Definition at line 1648 of file Core.cpp.

References llvm::Function::begin(), llvm::Function::end(), I, and llvm::wrap().

LLVMValueRef LLVMGetBasicBlockTerminator ( LLVMBasicBlockRef  BB)

Obtain the terminator instruction for a basic block.

If the basic block does not have a terminator (it is not well-formed if it doesn't), then NULL is returned.

The returned LLVMValueRef corresponds to a llvm::TerminatorInst.

See Also
llvm::BasicBlock::getTerminator()

Definition at line 1640 of file Core.cpp.

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

LLVMBasicBlockRef LLVMGetEntryBasicBlock ( LLVMValueRef  Fn)

Obtain the basic block that corresponds to the entry point of a function.

See Also
llvm::Function::getEntryBlock()

Definition at line 1654 of file Core.cpp.

References llvm::wrap().

LLVMBasicBlockRef LLVMGetFirstBasicBlock ( LLVMValueRef  Fn)

Obtain the first basic block in a function.

The returned basic block can be used as an iterator. You will likely eventually call into LLVMGetNextBasicBlock() with it.

See Also
llvm::Function::begin()

Definition at line 1658 of file Core.cpp.

References llvm::Function::begin(), llvm::Function::end(), I, and llvm::wrap().

LLVMValueRef LLVMGetFirstInstruction ( LLVMBasicBlockRef  BB)

Obtain the first instruction in a basic block.

The returned LLVMValueRef corresponds to a llvm::Instruction instance.

Definition at line 1734 of file Core.cpp.

References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), I, llvm::unwrap(), and llvm::wrap().

LLVMBasicBlockRef LLVMGetLastBasicBlock ( LLVMValueRef  Fn)

Obtain the last basic block in a function.

See Also
llvm::Function::end()

Definition at line 1666 of file Core.cpp.

References llvm::Function::begin(), llvm::Function::end(), I, and llvm::wrap().

LLVMValueRef LLVMGetLastInstruction ( LLVMBasicBlockRef  BB)

Obtain the last instruction in a basic block.

The returned LLVMValueRef corresponds to an LLVM:Instruction.

Definition at line 1742 of file Core.cpp.

References llvm::BasicBlock::begin(), llvm::BasicBlock::end(), I, llvm::unwrap(), and llvm::wrap().

LLVMBasicBlockRef LLVMGetNextBasicBlock ( LLVMBasicBlockRef  BB)

Advance a basic block iterator.

Definition at line 1674 of file Core.cpp.

References llvm::Function::end(), llvm::BasicBlock::getParent(), I, llvm::unwrap(), and llvm::wrap().

LLVMBasicBlockRef LLVMGetPreviousBasicBlock ( LLVMBasicBlockRef  BB)

Go backwards in a basic block iterator.

Definition at line 1682 of file Core.cpp.

References llvm::Function::begin(), llvm::BasicBlock::getParent(), I, llvm::unwrap(), and llvm::wrap().

LLVMBasicBlockRef LLVMInsertBasicBlock ( LLVMBasicBlockRef  InsertBeforeBB,
const char *  Name 
)

Insert a basic block in a function using the global context.

See Also
llvm::BasicBlock::Create()

Definition at line 1707 of file Core.cpp.

References LLVMGetGlobalContext(), and LLVMInsertBasicBlockInContext().

LLVMBasicBlockRef LLVMInsertBasicBlockInContext ( LLVMContextRef  C,
LLVMBasicBlockRef  BB,
const char *  Name 
)

Insert a basic block in a function before another basic block.

The function to add to is determined by the function of the passed basic block.

See Also
llvm::BasicBlock::Create()

Definition at line 1700 of file Core.cpp.

References llvm::BasicBlock::Create(), llvm::BasicBlock::getParent(), llvm::unwrap(), and llvm::wrap().

Referenced by LLVMInsertBasicBlock().

void LLVMMoveBasicBlockAfter ( LLVMBasicBlockRef  BB,
LLVMBasicBlockRef  MovePos 
)

Move a basic block to after another one.

See Also
llvm::BasicBlock::moveAfter()

Definition at line 1724 of file Core.cpp.

References llvm::unwrap().

void LLVMMoveBasicBlockBefore ( LLVMBasicBlockRef  BB,
LLVMBasicBlockRef  MovePos 
)

Move a basic block to before another one.

See Also
llvm::BasicBlock::moveBefore()

Definition at line 1720 of file Core.cpp.

References llvm::unwrap().

void LLVMRemoveBasicBlockFromParent ( LLVMBasicBlockRef  BB)

Remove a basic block from a function.

This deletes the basic block from its containing function but keep the basic block alive.

See Also
llvm::BasicBlock::removeFromParent()

Definition at line 1716 of file Core.cpp.

References llvm::unwrap().

LLVMBasicBlockRef LLVMValueAsBasicBlock ( LLVMValueRef  Val)

Convert an LLVMValueRef to an LLVMBasicBlockRef instance.

Definition at line 1632 of file Core.cpp.

References llvm::wrap().

LLVMBool LLVMValueIsBasicBlock ( LLVMValueRef  Val)

Determine whether an LLVMValueRef is itself a basic block.

Definition at line 1628 of file Core.cpp.

References llvm::unwrap().