Struct rustc_codegen_llvm::builder::Builder[−][src]

#[must_use]
pub struct Builder<'a, 'll, 'tcx> { pub llbuilder: &'ll mut Builder<'ll>, pub cx: &'a CodegenCx<'ll, 'tcx>, }

Fields

llbuilder: &'ll mut Builder<'ll>cx: &'a CodegenCx<'ll, 'tcx>

Implementations

impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx>[src]

pub fn llfn(&self) -> &'ll Value[src]

fn position_at_start(&mut self, llbb: &'ll BasicBlock)[src]

pub fn minnum(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

pub fn maxnum(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

pub fn insert_element(
    &mut self,
    vec: &'ll Value,
    elt: &'ll Value,
    idx: &'ll Value
) -> &'ll Value
[src]

pub fn shuffle_vector(
    &mut self,
    v1: &'ll Value,
    v2: &'ll Value,
    mask: &'ll Value
) -> &'ll Value
[src]

pub fn vector_reduce_fadd(
    &mut self,
    acc: &'ll Value,
    src: &'ll Value
) -> &'ll Value
[src]

pub fn vector_reduce_fmul(
    &mut self,
    acc: &'ll Value,
    src: &'ll Value
) -> &'ll Value
[src]

pub fn vector_reduce_fadd_fast(
    &mut self,
    acc: &'ll Value,
    src: &'ll Value
) -> &'ll Value
[src]

pub fn vector_reduce_fmul_fast(
    &mut self,
    acc: &'ll Value,
    src: &'ll Value
) -> &'ll Value
[src]

pub fn vector_reduce_add(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_mul(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_and(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_or(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_xor(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_fmin(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_fmax(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_fmin_fast(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_fmax_fast(&mut self, src: &'ll Value) -> &'ll Value[src]

pub fn vector_reduce_min(
    &mut self,
    src: &'ll Value,
    is_signed: bool
) -> &'ll Value
[src]

pub fn vector_reduce_max(
    &mut self,
    src: &'ll Value,
    is_signed: bool
) -> &'ll Value
[src]

pub fn add_clause(&mut self, landing_pad: &'ll Value, clause: &'ll Value)[src]

pub fn catch_ret(
    &mut self,
    funclet: &Funclet<'ll>,
    unwind: &'ll BasicBlock
) -> &'ll Value
[src]

fn check_store(&mut self, val: &'ll Value, ptr: &'ll Value) -> &'ll Value[src]

fn check_call<'b>(
    &mut self,
    typ: &str,
    llfn: &'ll Value,
    args: &'b [&'ll Value]
) -> Cow<'b, [&'ll Value]>
[src]

pub fn va_arg(&mut self, list: &'ll Value, ty: &'ll Type) -> &'ll Value[src]

fn call_lifetime_intrinsic(
    &mut self,
    intrinsic: &str,
    ptr: &'ll Value,
    size: Size
)
[src]

pub(crate) fn phi(
    &mut self,
    ty: &'ll Type,
    vals: &[&'ll Value],
    bbs: &[&'ll BasicBlock]
) -> &'ll Value
[src]

fn add_incoming_to_phi(
    &mut self,
    phi: &'ll Value,
    val: &'ll Value,
    bb: &'ll BasicBlock
)
[src]

fn fptoint_sat_broken_in_llvm(&self) -> bool[src]

Methods from Deref<Target = CodegenCx<'ll, 'tcx>>

pub fn const_array(&self, ty: &'ll Type, elts: &[&'ll Value]) -> &'ll Value[src]

pub fn const_vector(&self, elts: &[&'ll Value]) -> &'ll Value[src]

pub fn const_bytes(&self, bytes: &[u8]) -> &'ll Value[src]

fn const_cstr(&self, s: Symbol, null_terminated: bool) -> &'ll Value[src]

pub fn const_get_elt(&self, v: &'ll Value, idx: u64) -> &'ll Value[src]

pub(crate) fn const_bitcast(&self, val: &'ll Value, ty: &'ll Type) -> &'ll Value[src]

pub(crate) fn static_addr_of_mut(
    &self,
    cv: &'ll Value,
    align: Align,
    kind: Option<&str>
) -> &'ll Value
[src]

pub(crate) fn get_static(&self, def_id: DefId) -> &'ll Value[src]

pub(crate) fn statics_to_rauw(&self) -> &RefCell<Vec<(&'ll Value, &'ll Value)>>[src]

pub fn coverage_context<'a>(
    &'a self
) -> Option<&'a CrateCoverageContext<'ll, 'tcx>>
[src]

pub(crate) fn get_intrinsic(&self, key: &str) -> &'b Value[src]

fn insert_intrinsic(
    &self,
    name: &'static str,
    args: Option<&[&'b Type]>,
    ret: &'b Type
) -> &'b Value
[src]

fn declare_intrinsic(&self, key: &str) -> Option<&'b Value>[src]

pub(crate) fn eh_catch_typeinfo(&self) -> &'b Value[src]

pub fn generate_local_symbol_name(&self, prefix: &str) -> String[src]

Generates a new symbol name with the given prefix. This symbol name must only be used for definitions with internal or private linkage.

pub fn lookup_debug_loc(&self, pos: BytePos) -> DebugLoc[src]

Looks up debug source information about a BytePos.

pub fn declare_global(&self, name: &str, ty: &'ll Type) -> &'ll Value[src]

Declare a global value.

If there’s a value with the same name already declared, the function will return its Value instead.

pub fn declare_cfn(
    &self,
    name: &str,
    unnamed: UnnamedAddr,
    fn_type: &'ll Type
) -> &'ll Value
[src]

Declare a C ABI function.

Only use this for foreign function ABIs and glue. For Rust functions use declare_fn instead.

If there’s a value with the same name already declared, the function will update the declaration and return existing Value instead.

pub fn declare_fn(
    &self,
    name: &str,
    fn_abi: &FnAbi<'tcx, Ty<'tcx>>
) -> &'ll Value
[src]

Declare a Rust function.

If there’s a value with the same name already declared, the function will update the declaration and return existing Value instead.

pub fn define_global(&self, name: &str, ty: &'ll Type) -> Option<&'ll Value>[src]

Declare a global with an intention to define it.

Use this function when you intend to define a global. This function will return None if the name already has a definition associated with it. In that case an error should be reported to the user, because it usually happens due to user’s fault (e.g., misuse of #[no_mangle] or #[export_name] attributes).

pub fn define_private_global(&self, ty: &'ll Type) -> &'ll Value[src]

Declare a private global

Use this function when you intend to define a global without a name.

pub fn get_declared_value(&self, name: &str) -> Option<&'ll Value>[src]

Gets declared value by name.

pub fn get_defined_value(&self, name: &str) -> Option<&'ll Value>[src]

Gets defined or externally defined (AvailableExternally linkage) value by name.

pub(crate) unsafe fn should_assume_dso_local(
    &self,
    linkage: Linkage,
    visibility: Visibility
) -> bool
[src]

Whether a definition (NB: not declaration!) can be assumed to be local to a group of libraries that form a single DSO or executable.

pub(crate) fn type_named_struct(&self, name: &str) -> &'ll Type[src]

pub(crate) fn set_struct_body(
    &self,
    ty: &'ll Type,
    els: &[&'ll Type],
    packed: bool
)
[src]

pub(crate) fn type_void(&self) -> &'ll Type[src]

pub(crate) fn type_metadata(&self) -> &'ll Type[src]

pub(crate) fn type_ix(&self, num_bits: u64) -> &'ll Type[src]

x Creates an integer type with the given number of bits, e.g., i24

pub(crate) fn type_vector(&self, ty: &'ll Type, len: u64) -> &'ll Type[src]

pub(crate) fn func_params_types(&self, ty: &'ll Type) -> Vec<&'ll Type>[src]

pub(crate) fn type_bool(&self) -> &'ll Type[src]

pub(crate) fn type_int_from_ty(&self, t: IntTy) -> &'ll Type[src]

pub(crate) fn type_uint_from_ty(&self, t: UintTy) -> &'ll Type[src]

pub(crate) fn type_float_from_ty(&self, t: FloatTy) -> &'ll Type[src]

pub(crate) fn type_pointee_for_align(&self, align: Align) -> &'ll Type[src]

pub(crate) fn type_padding_filler(&self, size: Size, align: Align) -> &'ll Type[src]

Return a LLVM type that has at most the required alignment, and exactly the required size, as a best-effort padding array.

pub(crate) fn type_variadic_func(
    &self,
    args: &[&'ll Type],
    ret: &'ll Type
) -> &'ll Type
[src]

pub(crate) fn type_array(&self, ty: &'ll Type, len: u64) -> &'ll Type[src]

pub fn align_of(&self, ty: Ty<'tcx>) -> Align[src]

pub fn size_of(&self, ty: Ty<'tcx>) -> Size[src]

pub fn size_and_align_of(&self, ty: Ty<'tcx>) -> (Size, Align)[src]

Trait Implementations

impl<'tcx, 'a, 'll> AbiBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]

fn apply_attrs_callsite(
    &mut self,
    fn_abi: &FnAbi<'tcx, Ty<'tcx>>,
    callsite: Self::Value
)
[src]

fn get_param(&self, index: usize) -> Self::Value[src]

impl<'tcx, 'a, 'll> ArgAbiMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]

fn store_fn_arg(
    &mut self,
    arg_abi: &ArgAbi<'tcx, Ty<'tcx>>,
    idx: &mut usize,
    dst: PlaceRef<'tcx, Self::Value>
)
[src]

fn store_arg(
    &mut self,
    arg_abi: &ArgAbi<'tcx, Ty<'tcx>>,
    val: &'ll Value,
    dst: PlaceRef<'tcx, &'ll Value>
)
[src]

fn arg_memory_ty(&self, arg_abi: &ArgAbi<'tcx, Ty<'tcx>>) -> &'ll Type[src]

impl<'tcx, 'a, 'll> AsmBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]

fn codegen_llvm_inline_asm(
    &mut self,
    ia: &LlvmInlineAsmInner,
    outputs: Vec<PlaceRef<'tcx, &'ll Value>>,
    inputs: Vec<&'ll Value>,
    span: Span
) -> bool
[src]

Take an inline assembly expression and splat it out via LLVM

fn codegen_inline_asm(
    &mut self,
    template: &[InlineAsmTemplatePiece],
    operands: &[InlineAsmOperandRef<'tcx, Self>],
    options: InlineAsmOptions,
    line_spans: &[Span]
)
[src]

Take an inline assembly expression and splat it out via LLVM

impl<'ll, 'tcx> BackendTypes for Builder<'_, 'll, 'tcx>[src]

type Value = &'ll Value

type Function = &'ll Value

type BasicBlock = &'ll BasicBlock

type Type = &'ll Type

type Funclet = Funclet<'ll>

type DIScope = &'ll Metadata

type DILocation = &'ll Metadata

type DIVariable = &'ll Metadata

impl<'a, 'tcx, 'll> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx>[src]

fn new_block<'b>(
    cx: &'a CodegenCx<'ll, 'tcx>,
    llfn: &'ll Value,
    name: &'b str
) -> Self
[src]

fn with_cx(cx: &'a CodegenCx<'ll, 'tcx>) -> Self[src]

fn build_sibling_block(&self, name: &str) -> Self[src]

fn llbb(&self) -> &'ll BasicBlock[src]

fn set_span(&mut self, _span: Span)[src]

fn position_at_end(&mut self, llbb: &'ll BasicBlock)[src]

fn ret_void(&mut self)[src]

fn ret(&mut self, v: &'ll Value)[src]

fn br(&mut self, dest: &'ll BasicBlock)[src]

fn cond_br(
    &mut self,
    cond: &'ll Value,
    then_llbb: &'ll BasicBlock,
    else_llbb: &'ll BasicBlock
)
[src]

fn switch(
    &mut self,
    v: &'ll Value,
    else_llbb: &'ll BasicBlock,
    cases: impl ExactSizeIterator<Item = (u128, &'ll BasicBlock)>
)
[src]

fn invoke(
    &mut self,
    llfn: &'ll Value,
    args: &[&'ll Value],
    then: &'ll BasicBlock,
    catch: &'ll BasicBlock,
    funclet: Option<&Funclet<'ll>>
) -> &'ll Value
[src]

fn unreachable(&mut self)[src]

fn add(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn fadd(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn sub(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn fsub(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn mul(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn fmul(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn udiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn exactudiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn sdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn exactsdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn fdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn urem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn srem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn frem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn shl(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn lshr(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn ashr(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn and(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn or(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn xor(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]

fn neg(&mut self, x: &'ll Value) -> &'ll Value[src]

fn fneg(&mut self, x: &'ll Value) -> &'ll Value[src]

fn not(&mut self, x: &'ll Value) -> &'ll Value[src]

fn unchecked_sadd(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn unchecked_uadd(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn unchecked_ssub(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn unchecked_usub(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn unchecked_smul(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn unchecked_umul(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]

fn fadd_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

fn fsub_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

fn fmul_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

fn fdiv_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

fn frem_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]

fn checked_binop(
    &mut self,
    oop: OverflowOp,
    ty: Ty<'_>,
    lhs: Self::Value,
    rhs: Self::Value
) -> (Self::Value, Self::Value)
[src]

fn from_immediate(&mut self, val: Self::Value) -> Self::Value[src]

fn to_immediate_scalar(
    &mut self,
    val: Self::Value,
    scalar: &Scalar
) -> Self::Value
[src]

fn alloca(&mut self, ty: &'ll Type, align: Align) -> &'ll Value[src]

fn dynamic_alloca(&mut self, ty: &'ll Type, align: Align) -> &'ll Value[src]

fn array_alloca(
    &mut self,
    ty: &'ll Type,
    len: &'ll Value,
    align: Align
) -> &'ll Value
[src]

fn load(&mut self, ptr: &'ll Value, align: Align) -> &'ll Value[src]

fn volatile_load(&mut self, ptr: &'ll Value) -> &'ll Value[src]

fn atomic_load(
    &mut self,
    ptr: &'ll Value,
    order: AtomicOrdering,
    size: Size
) -> &'ll Value
[src]

fn load_operand(
    &mut self,
    place: PlaceRef<'tcx, &'ll Value>
) -> OperandRef<'tcx, &'ll Value>
[src]

fn write_operand_repeatedly(
    self,
    cg_elem: OperandRef<'tcx, &'ll Value>,
    count: u64,
    dest: PlaceRef<'tcx, &'ll Value>
) -> Self
[src]

Called for Rvalue::Repeat when the elem is neither a ZST nor optimizable using memset.

fn range_metadata(&mut self, load: &'ll Value, range: Range<u128>)[src]

fn nonnull_metadata(&mut self, load: &'ll Value)[src]

fn store(
    &mut self,
    val: &'ll Value,
    ptr: &'ll Value,
    align: Align
) -> &'ll Value
[src]

fn store_with_flags(
    &mut self,
    val: &'ll Value,
    ptr: &'ll Value,
    align: Align,
    flags: MemFlags
) -> &'ll Value
[src]

fn atomic_store(
    &mut self,
    val: &'ll Value,
    ptr: &'ll Value,
    order: AtomicOrdering,
    size: Size
)
[src]

fn gep(&mut self, ptr: &'ll Value, indices: &[&'ll Value]) -> &'ll Value[src]

fn inbounds_gep(
    &mut self,
    ptr: &'ll Value,
    indices: &[&'ll Value]
) -> &'ll Value
[src]

fn struct_gep(&mut self, ptr: &'ll Value, idx: u64) -> &'ll Value[src]

fn trunc(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn sext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn fptoui_sat(
    &mut self,
    val: &'ll Value,
    dest_ty: &'ll Type
) -> Option<&'ll Value>
[src]

fn fptosi_sat(
    &mut self,
    val: &'ll Value,
    dest_ty: &'ll Type
) -> Option<&'ll Value>
[src]

fn fptoui(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn fptosi(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn uitofp(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn sitofp(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn fptrunc(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn fpext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn ptrtoint(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn inttoptr(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn bitcast(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn intcast(
    &mut self,
    val: &'ll Value,
    dest_ty: &'ll Type,
    is_signed: bool
) -> &'ll Value
[src]

fn pointercast(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn icmp(
    &mut self,
    op: IntPredicate,
    lhs: &'ll Value,
    rhs: &'ll Value
) -> &'ll Value
[src]

fn fcmp(
    &mut self,
    op: RealPredicate,
    lhs: &'ll Value,
    rhs: &'ll Value
) -> &'ll Value
[src]

fn memcpy(
    &mut self,
    dst: &'ll Value,
    dst_align: Align,
    src: &'ll Value,
    src_align: Align,
    size: &'ll Value,
    flags: MemFlags
)
[src]

fn memmove(
    &mut self,
    dst: &'ll Value,
    dst_align: Align,
    src: &'ll Value,
    src_align: Align,
    size: &'ll Value,
    flags: MemFlags
)
[src]

fn memset(
    &mut self,
    ptr: &'ll Value,
    fill_byte: &'ll Value,
    size: &'ll Value,
    align: Align,
    flags: MemFlags
)
[src]

fn select(
    &mut self,
    cond: &'ll Value,
    then_val: &'ll Value,
    else_val: &'ll Value
) -> &'ll Value
[src]

fn va_arg(&mut self, list: &'ll Value, ty: &'ll Type) -> &'ll Value[src]

fn extract_element(&mut self, vec: &'ll Value, idx: &'ll Value) -> &'ll Value[src]

fn vector_splat(&mut self, num_elts: usize, elt: &'ll Value) -> &'ll Value[src]

fn extract_value(&mut self, agg_val: &'ll Value, idx: u64) -> &'ll Value[src]

fn insert_value(
    &mut self,
    agg_val: &'ll Value,
    elt: &'ll Value,
    idx: u64
) -> &'ll Value
[src]

fn landing_pad(
    &mut self,
    ty: &'ll Type,
    pers_fn: &'ll Value,
    num_clauses: usize
) -> &'ll Value
[src]

fn set_cleanup(&mut self, landing_pad: &'ll Value)[src]

fn resume(&mut self, exn: &'ll Value) -> &'ll Value[src]

fn cleanup_pad(
    &mut self,
    parent: Option<&'ll Value>,
    args: &[&'ll Value]
) -> Funclet<'ll>
[src]

fn cleanup_ret(
    &mut self,
    funclet: &Funclet<'ll>,
    unwind: Option<&'ll BasicBlock>
) -> &'ll Value
[src]

fn catch_pad(&mut self, parent: &'ll Value, args: &[&'ll Value]) -> Funclet<'ll>[src]

fn catch_switch(
    &mut self,
    parent: Option<&'ll Value>,
    unwind: Option<&'ll BasicBlock>,
    num_handlers: usize
) -> &'ll Value
[src]

fn add_handler(&mut self, catch_switch: &'ll Value, handler: &'ll BasicBlock)[src]

fn set_personality_fn(&mut self, personality: &'ll Value)[src]

fn atomic_cmpxchg(
    &mut self,
    dst: &'ll Value,
    cmp: &'ll Value,
    src: &'ll Value,
    order: AtomicOrdering,
    failure_order: AtomicOrdering,
    weak: bool
) -> &'ll Value
[src]

fn atomic_rmw(
    &mut self,
    op: AtomicRmwBinOp,
    dst: &'ll Value,
    src: &'ll Value,
    order: AtomicOrdering
) -> &'ll Value
[src]

fn atomic_fence(&mut self, order: AtomicOrdering, scope: SynchronizationScope)[src]

fn set_invariant_load(&mut self, load: &'ll Value)[src]

fn lifetime_start(&mut self, ptr: &'ll Value, size: Size)[src]

Called for StorageLive

fn lifetime_end(&mut self, ptr: &'ll Value, size: Size)[src]

Called for StorageDead

fn instrprof_increment(
    &mut self,
    fn_name: &'ll Value,
    hash: &'ll Value,
    num_counters: &'ll Value,
    index: &'ll Value
)
[src]

fn call(
    &mut self,
    llfn: &'ll Value,
    args: &[&'ll Value],
    funclet: Option<&Funclet<'ll>>
) -> &'ll Value
[src]

fn zext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]

fn cx(&self) -> &CodegenCx<'ll, 'tcx>[src]

unsafe fn delete_basic_block(&mut self, bb: &'ll BasicBlock)[src]

fn do_not_inline(&mut self, llret: &'ll Value)[src]

fn to_immediate(
    &mut self,
    val: Self::Value,
    layout: TyAndLayout<'_, &TyS<'_>>
) -> Self::Value
[src]

impl<'tcx, 'a, 'll> CoverageInfoBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]

fn set_function_source_hash(
    &mut self,
    instance: Instance<'tcx>,
    function_source_hash: u64
) -> bool
[src]

Returns true if the function source hash was added to the coverage map (even if it had already been added, for this instance). Returns false only if -Z instrument-coverage is not enabled (a coverage map is not being generated). Read more

fn add_coverage_counter(
    &mut self,
    instance: Instance<'tcx>,
    id: CounterValueReference,
    region: CodeRegion
) -> bool
[src]

Returns true if the counter was added to the coverage map; false if -Z instrument-coverage is not enabled (a coverage map is not being generated). Read more

fn add_coverage_counter_expression(
    &mut self,
    instance: Instance<'tcx>,
    id: InjectedExpressionId,
    lhs: ExpressionOperandId,
    op: Op,
    rhs: ExpressionOperandId,
    region: Option<CodeRegion>
) -> bool
[src]

Returns true if the expression was added to the coverage map; false if -Z instrument-coverage is not enabled (a coverage map is not being generated). Read more

fn add_coverage_unreachable(
    &mut self,
    instance: Instance<'tcx>,
    region: CodeRegion
) -> bool
[src]

Returns true if the region was added to the coverage map; false if -Z instrument-coverage is not enabled (a coverage map is not being generated). Read more

impl<'a, 'll, 'tcx> DebugInfoBuilderMethods for Builder<'a, 'll, 'tcx>[src]

fn dbg_var_addr(
    &mut self,
    dbg_var: &'ll DIVariable,
    dbg_loc: &'ll DILocation,
    variable_alloca: Self::Value,
    direct_offset: Size,
    indirect_offsets: &[Size]
)
[src]

fn set_dbg_loc(&mut self, dbg_loc: &'ll DILocation)[src]

fn insert_reference_to_gdb_debug_scripts_section_global(&mut self)[src]

fn set_var_name(&mut self, value: &'ll Value, name: &str)[src]

impl<'ll, 'tcx> Deref for Builder<'_, 'll, 'tcx>[src]

type Target = CodegenCx<'ll, 'tcx>

The resulting type after dereferencing.

fn deref(&self) -> &Self::Target[src]

Dereferences the value.

impl<'a, 'll, 'tcx> Drop for Builder<'a, 'll, 'tcx>[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl<'tcx, 'll> HasCodegen<'tcx> for Builder<'_, 'll, 'tcx>[src]

type CodegenCx = CodegenCx<'ll, 'tcx>

impl HasDataLayout for Builder<'_, '_, '_>[src]

impl<'tcx> HasParamEnv<'tcx> for Builder<'_, '_, 'tcx>[src]

fn param_env(&self) -> ParamEnv<'tcx>[src]

impl<'tcx> HasTargetSpec for Builder<'_, '_, 'tcx>[src]

fn target_spec(&self) -> &Target[src]

impl<'tcx> HasTyCtxt<'tcx> for Builder<'_, '_, 'tcx>[src]

fn tcx(&self) -> TyCtxt<'tcx>[src]

impl<'tcx, 'a, 'll> IntrinsicCallMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]

fn codegen_intrinsic_call(
    &mut self,
    instance: Instance<'tcx>,
    fn_abi: &FnAbi<'tcx, Ty<'tcx>>,
    args: &[OperandRef<'tcx, &'ll Value>],
    llresult: &'ll Value,
    span: Span
)
[src]

Remember to add all intrinsics here, in compiler/rustc_typeck/src/check/mod.rs, and in library/core/src/intrinsics.rs; if you need access to any LLVM intrinsics, add them to compiler/rustc_codegen_llvm/src/context.rs. Read more

fn abort(&mut self)[src]

fn assume(&mut self, val: Self::Value)[src]

fn expect(&mut self, cond: Self::Value, expected: bool) -> Self::Value[src]

fn sideeffect(&mut self)[src]

Emits a forced side effect. Read more

fn va_start(&mut self, va_list: &'ll Value) -> &'ll Value[src]

Trait method used to inject va_start on the “spoofed” VaListImpl in Rust defined C-variadic functions. Read more

fn va_end(&mut self, va_list: &'ll Value) -> &'ll Value[src]

Trait method used to inject va_end on the “spoofed” VaListImpl before Rust defined C-variadic functions return. Read more

impl<'tcx> LayoutOf for Builder<'_, '_, 'tcx>[src]

type Ty = Ty<'tcx>

type TyAndLayout = TyAndLayout<'tcx>

fn layout_of(&self, ty: Ty<'tcx>) -> Self::TyAndLayout[src]

fn spanned_layout_of(&self, ty: Self::Ty, _span: Span) -> Self::TyAndLayout[src]

impl<'a, 'll, 'tcx> StaticBuilderMethods for Builder<'a, 'll, 'tcx>[src]

fn get_static(&mut self, def_id: DefId) -> &'ll Value[src]

Auto Trait Implementations

impl<'a, 'll, 'tcx> !RefUnwindSafe for Builder<'a, 'll, 'tcx>

impl<'a, 'll, 'tcx> !Send for Builder<'a, 'll, 'tcx>

impl<'a, 'll, 'tcx> !Sync for Builder<'a, 'll, 'tcx>

impl<'a, 'll, 'tcx> Unpin for Builder<'a, 'll, 'tcx> where
    'll: 'a,
    'tcx: 'a, 

impl<'a, 'll, 'tcx> !UnwindSafe for Builder<'a, 'll, 'tcx>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.