Struct rustc_codegen_llvm::builder::Builder [−][src]
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]
&mut self,
vec: &'ll Value,
elt: &'ll Value,
idx: &'ll Value
) -> &'ll Value
pub fn shuffle_vector(
&mut self,
v1: &'ll Value,
v2: &'ll Value,
mask: &'ll Value
) -> &'ll Value[src]
&mut self,
v1: &'ll Value,
v2: &'ll Value,
mask: &'ll Value
) -> &'ll Value
pub fn vector_reduce_fadd(
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value[src]
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value
pub fn vector_reduce_fmul(
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value[src]
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value
pub fn vector_reduce_fadd_fast(
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value[src]
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value
pub fn vector_reduce_fmul_fast(
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value[src]
&mut self,
acc: &'ll Value,
src: &'ll Value
) -> &'ll Value
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]
&mut self,
src: &'ll Value,
is_signed: bool
) -> &'ll Value
pub fn vector_reduce_max(
&mut self,
src: &'ll Value,
is_signed: bool
) -> &'ll Value[src]
&mut self,
src: &'ll Value,
is_signed: bool
) -> &'ll Value
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]
&mut self,
funclet: &Funclet<'ll>,
unwind: &'ll BasicBlock
) -> &'ll Value
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]
&mut self,
typ: &str,
llfn: &'ll Value,
args: &'b [&'ll Value]
) -> Cow<'b, [&'ll Value]>
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]
&mut self,
intrinsic: &str,
ptr: &'ll Value,
size: Size
)
pub(crate) fn phi(
&mut self,
ty: &'ll Type,
vals: &[&'ll Value],
bbs: &[&'ll BasicBlock]
) -> &'ll Value[src]
&mut self,
ty: &'ll Type,
vals: &[&'ll Value],
bbs: &[&'ll BasicBlock]
) -> &'ll Value
fn add_incoming_to_phi(
&mut self,
phi: &'ll Value,
val: &'ll Value,
bb: &'ll BasicBlock
)[src]
&mut self,
phi: &'ll Value,
val: &'ll Value,
bb: &'ll BasicBlock
)
fn wasm_and_missing_nontrapping_fptoint(&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]
&self,
cv: &'ll Value,
align: Align,
kind: Option<&str>
) -> &'ll Value
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<'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]
&self,
name: &'static str,
args: Option<&[&'b Type]>,
ret: &'b Type
) -> &'b Value
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]
&self,
name: &str,
unnamed: UnnamedAddr,
fn_type: &'ll Type
) -> &'ll Value
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]
&self,
name: &str,
fn_abi: &FnAbi<'tcx, Ty<'tcx>>
) -> &'ll Value
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) 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]
&self,
ty: &'ll Type,
els: &[&'ll Type],
packed: bool
)
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]
&self,
args: &[&'ll Type],
ret: &'ll Type
) -> &'ll Type
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]
&mut self,
fn_abi: &FnAbi<'tcx, Ty<'tcx>>,
callsite: Self::Value
)
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]
&mut self,
arg_abi: &ArgAbi<'tcx, Ty<'tcx>>,
idx: &mut usize,
dst: PlaceRef<'tcx, Self::Value>
)
fn store_arg(
&mut self,
arg_abi: &ArgAbi<'tcx, Ty<'tcx>>,
val: &'ll Value,
dst: PlaceRef<'tcx, &'ll Value>
)[src]
&mut self,
arg_abi: &ArgAbi<'tcx, Ty<'tcx>>,
val: &'ll Value,
dst: PlaceRef<'tcx, &'ll Value>
)
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]
&mut self,
ia: &LlvmInlineAsmInner,
outputs: Vec<PlaceRef<'tcx, &'ll Value>>,
inputs: Vec<&'ll Value>,
span: Span
) -> bool
fn codegen_inline_asm(
&mut self,
template: &[InlineAsmTemplatePiece],
operands: &[InlineAsmOperandRef<'tcx, Self>],
options: InlineAsmOptions,
line_spans: &[Span]
)[src]
&mut self,
template: &[InlineAsmTemplatePiece],
operands: &[InlineAsmOperandRef<'tcx, Self>],
options: InlineAsmOptions,
line_spans: &[Span]
)
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]
cx: &'a CodegenCx<'ll, 'tcx>,
llfn: &'ll Value,
name: &'b str
) -> Self
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]
&mut self,
cond: &'ll Value,
then_llbb: &'ll BasicBlock,
else_llbb: &'ll BasicBlock
)
fn switch(
&mut self,
v: &'ll Value,
else_llbb: &'ll BasicBlock,
cases: impl ExactSizeIterator<Item = (u128, &'ll BasicBlock)>
)[src]
&mut self,
v: &'ll Value,
else_llbb: &'ll BasicBlock,
cases: impl ExactSizeIterator<Item = (u128, &'ll BasicBlock)>
)
fn invoke(
&mut self,
llfn: &'ll Value,
args: &[&'ll Value],
then: &'ll BasicBlock,
catch: &'ll BasicBlock,
funclet: Option<&Funclet<'ll>>
) -> &'ll Value[src]
&mut self,
llfn: &'ll Value,
args: &[&'ll Value],
then: &'ll BasicBlock,
catch: &'ll BasicBlock,
funclet: Option<&Funclet<'ll>>
) -> &'ll Value
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]
&mut self,
oop: OverflowOp,
ty: Ty<'_>,
lhs: Self::Value,
rhs: Self::Value
) -> (Self::Value, Self::Value)
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]
&mut self,
val: Self::Value,
scalar: &Scalar
) -> Self::Value
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]
&mut self,
ty: &'ll Type,
len: &'ll Value,
align: Align
) -> &'ll Value
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]
&mut self,
ptr: &'ll Value,
order: AtomicOrdering,
size: Size
) -> &'ll Value
fn load_operand(
&mut self,
place: PlaceRef<'tcx, &'ll Value>
) -> OperandRef<'tcx, &'ll Value>[src]
&mut self,
place: PlaceRef<'tcx, &'ll Value>
) -> OperandRef<'tcx, &'ll Value>
fn write_operand_repeatedly(
self,
cg_elem: OperandRef<'tcx, &'ll Value>,
count: u64,
dest: PlaceRef<'tcx, &'ll Value>
) -> Self[src]
self,
cg_elem: OperandRef<'tcx, &'ll Value>,
count: u64,
dest: PlaceRef<'tcx, &'ll Value>
) -> Self
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]
&mut self,
val: &'ll Value,
ptr: &'ll Value,
align: Align
) -> &'ll Value
fn store_with_flags(
&mut self,
val: &'ll Value,
ptr: &'ll Value,
align: Align,
flags: MemFlags
) -> &'ll Value[src]
&mut self,
val: &'ll Value,
ptr: &'ll Value,
align: Align,
flags: MemFlags
) -> &'ll Value
fn atomic_store(
&mut self,
val: &'ll Value,
ptr: &'ll Value,
order: AtomicOrdering,
size: Size
)[src]
&mut self,
val: &'ll Value,
ptr: &'ll Value,
order: AtomicOrdering,
size: Size
)
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]
&mut self,
ptr: &'ll Value,
indices: &[&'ll Value]
) -> &'ll Value
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]
&mut self,
val: &'ll Value,
dest_ty: &'ll Type
) -> Option<&'ll Value>
fn fptosi_sat(
&mut self,
val: &'ll Value,
dest_ty: &'ll Type
) -> Option<&'ll Value>[src]
&mut self,
val: &'ll Value,
dest_ty: &'ll Type
) -> Option<&'ll Value>
fn fptosui_may_trap(&self, val: &'ll Value, dest_ty: &'ll Type) -> bool[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]
&mut self,
val: &'ll Value,
dest_ty: &'ll Type,
is_signed: bool
) -> &'ll Value
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]
&mut self,
op: IntPredicate,
lhs: &'ll Value,
rhs: &'ll Value
) -> &'ll Value
fn fcmp(
&mut self,
op: RealPredicate,
lhs: &'ll Value,
rhs: &'ll Value
) -> &'ll Value[src]
&mut self,
op: RealPredicate,
lhs: &'ll Value,
rhs: &'ll Value
) -> &'ll Value
fn memcpy(
&mut self,
dst: &'ll Value,
dst_align: Align,
src: &'ll Value,
src_align: Align,
size: &'ll Value,
flags: MemFlags
)[src]
&mut self,
dst: &'ll Value,
dst_align: Align,
src: &'ll Value,
src_align: Align,
size: &'ll Value,
flags: MemFlags
)
fn memmove(
&mut self,
dst: &'ll Value,
dst_align: Align,
src: &'ll Value,
src_align: Align,
size: &'ll Value,
flags: MemFlags
)[src]
&mut self,
dst: &'ll Value,
dst_align: Align,
src: &'ll Value,
src_align: Align,
size: &'ll Value,
flags: MemFlags
)
fn memset(
&mut self,
ptr: &'ll Value,
fill_byte: &'ll Value,
size: &'ll Value,
align: Align,
flags: MemFlags
)[src]
&mut self,
ptr: &'ll Value,
fill_byte: &'ll Value,
size: &'ll Value,
align: Align,
flags: MemFlags
)
fn select(
&mut self,
cond: &'ll Value,
then_val: &'ll Value,
else_val: &'ll Value
) -> &'ll Value[src]
&mut self,
cond: &'ll Value,
then_val: &'ll Value,
else_val: &'ll Value
) -> &'ll Value
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]
&mut self,
agg_val: &'ll Value,
elt: &'ll Value,
idx: u64
) -> &'ll Value
fn landing_pad(
&mut self,
ty: &'ll Type,
pers_fn: &'ll Value,
num_clauses: usize
) -> &'ll Value[src]
&mut self,
ty: &'ll Type,
pers_fn: &'ll Value,
num_clauses: usize
) -> &'ll Value
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]
&mut self,
parent: Option<&'ll Value>,
args: &[&'ll Value]
) -> Funclet<'ll>
fn cleanup_ret(
&mut self,
funclet: &Funclet<'ll>,
unwind: Option<&'ll BasicBlock>
) -> &'ll Value[src]
&mut self,
funclet: &Funclet<'ll>,
unwind: Option<&'ll BasicBlock>
) -> &'ll Value
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]
&mut self,
parent: Option<&'ll Value>,
unwind: Option<&'ll BasicBlock>,
num_handlers: usize
) -> &'ll Value
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]
&mut self,
dst: &'ll Value,
cmp: &'ll Value,
src: &'ll Value,
order: AtomicOrdering,
failure_order: AtomicOrdering,
weak: bool
) -> &'ll Value
fn atomic_rmw(
&mut self,
op: AtomicRmwBinOp,
dst: &'ll Value,
src: &'ll Value,
order: AtomicOrdering
) -> &'ll Value[src]
&mut self,
op: AtomicRmwBinOp,
dst: &'ll Value,
src: &'ll Value,
order: AtomicOrdering
) -> &'ll Value
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]
fn lifetime_end(&mut self, ptr: &'ll Value, size: Size)[src]
fn instrprof_increment(
&mut self,
fn_name: &'ll Value,
hash: &'ll Value,
num_counters: &'ll Value,
index: &'ll Value
)[src]
&mut self,
fn_name: &'ll Value,
hash: &'ll Value,
num_counters: &'ll Value,
index: &'ll Value
)
fn call(
&mut self,
llfn: &'ll Value,
args: &[&'ll Value],
funclet: Option<&Funclet<'ll>>
) -> &'ll Value[src]
&mut self,
llfn: &'ll Value,
args: &[&'ll Value],
funclet: Option<&Funclet<'ll>>
) -> &'ll Value
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]
pub fn to_immediate(
&mut self,
val: Self::Value,
layout: TyAndLayout<'_, &TyS<'_>>
) -> Self::Value[src]
&mut self,
val: Self::Value,
layout: TyAndLayout<'_, &TyS<'_>>
) -> Self::Value
impl<'tcx, 'a, 'll> CoverageInfoBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]
fn create_pgo_func_name_var(&self, instance: Instance<'tcx>) -> Self::Value[src]
Calls llvm::createPGOFuncNameVar() with the given function instance’s mangled function name. The LLVM API returns an llvm::GlobalVariable containing the function name, with the specific variable name and linkage required by LLVM InstrProf source-based coverage instrumentation.
fn set_function_source_hash(
&mut self,
instance: Instance<'tcx>,
function_source_hash: u64
) -> bool[src]
&mut self,
instance: Instance<'tcx>,
function_source_hash: u64
) -> bool
fn add_coverage_counter(
&mut self,
instance: Instance<'tcx>,
id: CounterValueReference,
region: CodeRegion
) -> bool[src]
&mut self,
instance: Instance<'tcx>,
id: CounterValueReference,
region: CodeRegion
) -> bool
fn add_coverage_counter_expression(
&mut self,
instance: Instance<'tcx>,
id: InjectedExpressionId,
lhs: ExpressionOperandId,
op: Op,
rhs: ExpressionOperandId,
region: Option<CodeRegion>
) -> bool[src]
&mut self,
instance: Instance<'tcx>,
id: InjectedExpressionId,
lhs: ExpressionOperandId,
op: Op,
rhs: ExpressionOperandId,
region: Option<CodeRegion>
) -> bool
fn add_coverage_unreachable(
&mut self,
instance: Instance<'tcx>,
region: CodeRegion
) -> bool[src]
&mut self,
instance: Instance<'tcx>,
region: CodeRegion
) -> bool
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]
&mut self,
dbg_var: &'ll DIVariable,
dbg_loc: &'ll DILocation,
variable_alloca: Self::Value,
direct_offset: Size,
indirect_offsets: &[Size]
)
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]
impl<'a, 'll, 'tcx> Drop for Builder<'a, 'll, 'tcx>[src]
impl<'tcx, 'll> HasCodegen<'tcx> for Builder<'_, 'll, 'tcx>[src]
impl HasDataLayout for Builder<'_, '_, '_>[src]
fn data_layout(&self) -> &TargetDataLayout[src]
impl<'tcx> HasParamEnv<'tcx> for Builder<'_, '_, 'tcx>[src]
impl<'tcx> HasTargetSpec for Builder<'_, '_, 'tcx>[src]
fn target_spec(&self) -> &Target[src]
impl<'tcx> HasTyCtxt<'tcx> for Builder<'_, '_, '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]
&mut self,
instance: Instance<'tcx>,
fn_abi: &FnAbi<'tcx, Ty<'tcx>>,
args: &[OperandRef<'tcx, &'ll Value>],
llresult: &'ll Value,
span: Span
)
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]
fn va_start(&mut self, va_list: &'ll Value) -> &'ll Value[src]
fn va_end(&mut self, va_list: &'ll Value) -> &'ll Value[src]
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]
pub 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,
'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]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,