Struct rustc::middle::trans::builder::Builder[src]

pub struct Builder<'a> {
    pub llbuilder: BuilderRef,
    pub ccx: &'a CrateContext,
}

Fields

llbuilder
ccx

Methods

impl<'a> Builder<'a>

fn new(ccx: &'a CrateContext) -> Builder<'a>

fn count_insn(&self, category: &str)

fn position_before(&self, insn: ValueRef)

fn position_at_end(&self, llbb: BasicBlockRef)

fn ret_void(&self)

fn ret(&self, v: ValueRef)

fn aggregate_ret(&self, ret_vals: &[ValueRef])

fn br(&self, dest: BasicBlockRef)

fn cond_br(&self, cond: ValueRef, then_llbb: BasicBlockRef, else_llbb: BasicBlockRef)

fn switch(&self, v: ValueRef, else_llbb: BasicBlockRef, num_cases: uint) -> ValueRef

fn indirect_br(&self, addr: ValueRef, num_dests: uint)

fn invoke(&self, llfn: ValueRef, args: &[ValueRef], then: BasicBlockRef, catch: BasicBlockRef, attributes: &[(uint, u64)]) -> ValueRef

fn unreachable(&self)

fn add(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nswadd(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nuwadd(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn fadd(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn sub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nswsub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nuwsub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn fsub(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn mul(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nswmul(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn nuwmul(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn fmul(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn udiv(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn sdiv(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn exactsdiv(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn fdiv(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn urem(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn srem(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn frem(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn shl(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn lshr(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn ashr(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn and(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn or(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn xor(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn binop(&self, op: Opcode, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn neg(&self, v: ValueRef) -> ValueRef

fn nswneg(&self, v: ValueRef) -> ValueRef

fn nuwneg(&self, v: ValueRef) -> ValueRef

fn fneg(&self, v: ValueRef) -> ValueRef

fn not(&self, v: ValueRef) -> ValueRef

fn malloc(&self, ty: Type) -> ValueRef

fn array_malloc(&self, ty: Type, val: ValueRef) -> ValueRef

fn alloca(&self, ty: Type, name: &str) -> ValueRef

fn array_alloca(&self, ty: Type, val: ValueRef) -> ValueRef

fn free(&self, ptr: ValueRef)

fn load(&self, ptr: ValueRef) -> ValueRef

fn volatile_load(&self, ptr: ValueRef) -> ValueRef

fn atomic_load(&self, ptr: ValueRef, order: AtomicOrdering) -> ValueRef

fn load_range_assert(&self, ptr: ValueRef, lo: c_ulonglong, hi: c_ulonglong, signed: Bool) -> ValueRef

fn store(&self, val: ValueRef, ptr: ValueRef)

fn volatile_store(&self, val: ValueRef, ptr: ValueRef)

fn atomic_store(&self, val: ValueRef, ptr: ValueRef, order: AtomicOrdering)

fn gep(&self, ptr: ValueRef, indices: &[ValueRef]) -> ValueRef

fn gepi(&self, base: ValueRef, ixs: &[uint]) -> ValueRef

fn inbounds_gep(&self, ptr: ValueRef, indices: &[ValueRef]) -> ValueRef

fn struct_gep(&self, ptr: ValueRef, idx: uint) -> ValueRef

fn global_string(&self, _str: *c_char) -> ValueRef

fn global_string_ptr(&self, _str: *c_char) -> ValueRef

fn trunc(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn zext(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn sext(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn fptoui(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn fptosi(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn uitofp(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn sitofp(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn fptrunc(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn fpext(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn ptrtoint(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn inttoptr(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn bitcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn zext_or_bitcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn sext_or_bitcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn trunc_or_bitcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn cast(&self, op: Opcode, val: ValueRef, dest_ty: Type) -> ValueRef

fn pointercast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn intcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn fpcast(&self, val: ValueRef, dest_ty: Type) -> ValueRef

fn icmp(&self, op: IntPredicate, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn fcmp(&self, op: RealPredicate, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn empty_phi(&self, ty: Type) -> ValueRef

fn phi(&self, ty: Type, vals: &[ValueRef], bbs: &[BasicBlockRef]) -> ValueRef

fn add_span_comment(&self, sp: Span, text: &str)

fn add_comment(&self, text: &str)

fn inline_asm_call(&self, asm: *c_char, cons: *c_char, inputs: &[ValueRef], output: Type, volatile: bool, alignstack: bool, dia: AsmDialect) -> ValueRef

fn call(&self, llfn: ValueRef, args: &[ValueRef], attributes: &[(uint, u64)]) -> ValueRef

fn call_with_conv(&self, llfn: ValueRef, args: &[ValueRef], conv: CallConv, attributes: &[(uint, u64)]) -> ValueRef

fn select(&self, cond: ValueRef, then_val: ValueRef, else_val: ValueRef) -> ValueRef

fn va_arg(&self, list: ValueRef, ty: Type) -> ValueRef

fn extract_element(&self, vec: ValueRef, idx: ValueRef) -> ValueRef

fn insert_element(&self, vec: ValueRef, elt: ValueRef, idx: ValueRef) -> ValueRef

fn shuffle_vector(&self, v1: ValueRef, v2: ValueRef, mask: ValueRef) -> ValueRef

fn vector_splat(&self, num_elts: uint, elt: ValueRef) -> ValueRef

fn extract_value(&self, agg_val: ValueRef, idx: uint) -> ValueRef

fn insert_value(&self, agg_val: ValueRef, elt: ValueRef, idx: uint) -> ValueRef

fn is_null(&self, val: ValueRef) -> ValueRef

fn is_not_null(&self, val: ValueRef) -> ValueRef

fn ptrdiff(&self, lhs: ValueRef, rhs: ValueRef) -> ValueRef

fn trap(&self)

fn landing_pad(&self, ty: Type, pers_fn: ValueRef, num_clauses: uint) -> ValueRef

fn set_cleanup(&self, landing_pad: ValueRef)

fn resume(&self, exn: ValueRef) -> ValueRef

fn atomic_cmpxchg(&self, dst: ValueRef, cmp: ValueRef, src: ValueRef, order: AtomicOrdering, failure_order: AtomicOrdering) -> ValueRef

fn atomic_rmw(&self, op: AtomicBinOp, dst: ValueRef, src: ValueRef, order: AtomicOrdering) -> ValueRef

fn atomic_fence(&self, order: AtomicOrdering)