Struct llvm::Builder
[−]
[src]
pub struct Builder;
This provides a uniform API for creating instructions and inserting them into a basic block.
Methods
impl Builder
[src]
fn new(context: &Context) -> CSemiBox<Builder>
Create a new builder in the context given.
fn position_at_end(&self, block: &BasicBlock)
Position the builder at the end of block
.
fn build_ret_void(&self) -> &Value
Build an instruction that returns from the function with void.
fn build_ret(&self, value: &Value) -> &Value
Build an instruction that returns from the function with value
.
fn build_array_alloca(&self, elem: &Type, size: &Value) -> &Value
Build an instruction that allocates an array with the element type elem
and the size size
.
The size of this array will be the size of elem
times size
.
fn build_alloca(&self, ty: &Type) -> &Value
Build an instruction that allocates a pointer to fit the size of ty
then returns this pointer.
fn build_free(&self, val: &Value) -> &Value
Build an instruction that frees the val
, which MUST be a pointer that was returned
from build_alloca
.
fn build_store(&self, val: &Value, ptr: &Value) -> &Value
Build an instruction that store the value val
in the pointer ptr
.
fn build_br(&self, dest: &BasicBlock) -> &Value
Build an instruction that branches to the block dest
.
fn build_cond_br(&self, cond: &Value, if_block: &BasicBlock, else_block: Option<&BasicBlock>) -> &Value
Build an instruction that branches to if_block
if cond
evaluates to true, and else_block
otherwise.
fn build_call(&self, func: &Function, args: &[&Value]) -> &Value
Build an instruction that calls the function func
with the arguments args
.
This will return the return value of the function.
fn build_tail_call(&self, func: &Function, args: &[&Value]) -> &Value
Build an instruction that calls the function func
with the arguments args
.
This will return the return value of the function.
fn build_select(&self, cond: &Value, true_val: &Value, false_val: &Value) -> &Value
Build an instruction that yields to true_val
if cond
is equal to 1
, and false_val
otherwise.
fn build_bit_cast(&self, value: &Value, dest: &Type) -> &Value
Build an instruction that casts a value into a certain type.
fn build_int_to_ptr(&self, value: &Value, dest: &Type) -> &Value
fn build_zext(&self, value: &Value, dest: &Type) -> &Value
fn build_trunc(&self, value: &Value, dest: &Type) -> &Value
Build an instruction that truncates the high-order bits of value to fit into a certain type.
fn build_insert_value(&self, agg: &Value, elem: &Value, index: usize) -> &Value
Build an instruction that inserts a value into an aggregate data value.
fn build_extract_value(&self, agg: &Value, index: usize) -> &Value
Build an instruction that extracts a value from an aggregate data value.
fn build_gep(&self, pointer: &Value, indices: &[&Value]) -> &Value
Build an instruction that computes the address of a subelement of an aggregate data structure.
Basically type-safe pointer arithmetic.
fn build_switch(&self, value: &Value, default: &BasicBlock, cases: &[(&Value, &BasicBlock)]) -> &Value
Build an instruction that runs whichever block matches the value, or default
if none of them matched it.
fn build_load(&self, value: &Value) -> &Value
fn build_neg(&self, value: &Value) -> &Value
fn build_not(&self, value: &Value) -> &Value
fn build_add(&self, left: &Value, right: &Value) -> &Value
fn build_sub(&self, left: &Value, right: &Value) -> &Value
fn build_mul(&self, left: &Value, right: &Value) -> &Value
fn build_div(&self, left: &Value, right: &Value) -> &Value
fn build_shl(&self, left: &Value, right: &Value) -> &Value
fn build_ashr(&self, left: &Value, right: &Value) -> &Value
fn build_and(&self, left: &Value, right: &Value) -> &Value
fn build_or(&self, left: &Value, right: &Value) -> &Value
fn build_cmp(&self, a: &Value, b: &Value, pred: Predicate) -> &Value
Build an instruction to compare two values with the predicate given.
Trait Implementations
impl Eq for Builder
[src]
impl PartialEq<Builder> for Builder
[src]
fn eq(&self, other: &Builder) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> PartialEq<Builder> for &'a Builder
[src]
fn eq(&self, other: &Builder) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl<'a> From<LLVMBuilderRef> for &'a Builder
[src]
fn from(ty: LLVMBuilderRef) -> &'a Builder
Performs the conversion.
impl<'a> From<LLVMBuilderRef> for &'a mut Builder
[src]
fn from(ty: LLVMBuilderRef) -> &'a mut Builder
Performs the conversion.
impl DisposeRef for Builder
[src]
type RefTo = LLVMBuilder
What a reference to this type represents as a C pointer.
unsafe fn dispose(ptr: LLVMBuilderRef)
Destroy the contents at the pointer's location. Read more