[−][src]Struct rustc_codegen_llvm::builder::Builder
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]
pub(in builder) fn position_at_start(
&mut self,
llbb: &'ll BasicBlock
)[src]
&mut self,
llbb: &'ll BasicBlock
)
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
pub(in builder) fn check_store(
&mut self,
val: &'ll Value,
ptr: &'ll Value
) -> &'ll Value[src]
&mut self,
val: &'ll Value,
ptr: &'ll Value
) -> &'ll Value
pub(in builder) 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]
pub(in builder) 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
pub(in builder) 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
)
pub(in builder) fn wasm_and_missing_nontrapping_fptoint(
&self
) -> bool[src]
&self
) -> bool
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]
pub(in common) fn const_cstr(
&self,
s: Symbol,
null_terminated: bool
) -> &'ll Value[src]
&self,
s: Symbol,
null_terminated: bool
) -> &'ll Value
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]
pub(in context) 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
pub(in context) fn declare_intrinsic(
&self,
key: &str
) -> Option<&'b Value>[src]
&self,
key: &str
) -> Option<&'b Value>
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, 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]
&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]
pub 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
)
pub fn get_param(&self, index: usize) -> Self::Value[src]
impl<'tcx, 'a, 'll> ArgAbiMethods<'tcx> for Builder<'a, 'll, 'tcx>[src]
pub 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>
)
pub 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>
)
pub 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]
pub 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
pub 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 = <CodegenCx<'ll, 'tcx> as BackendTypes>::Value
type Function = <CodegenCx<'ll, 'tcx> as BackendTypes>::Function
type BasicBlock = <CodegenCx<'ll, 'tcx> as BackendTypes>::BasicBlock
type Type = <CodegenCx<'ll, 'tcx> as BackendTypes>::Type
type Funclet = <CodegenCx<'ll, 'tcx> as BackendTypes>::Funclet
type DIScope = <CodegenCx<'ll, 'tcx> as BackendTypes>::DIScope
type DILocation = <CodegenCx<'ll, 'tcx> as BackendTypes>::DILocation
type DIVariable = <CodegenCx<'ll, 'tcx> as BackendTypes>::DIVariable
impl<'a, 'tcx, 'll> BuilderMethods<'a, 'tcx> for Builder<'a, 'll, 'tcx>[src]
pub 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
pub fn with_cx(cx: &'a CodegenCx<'ll, 'tcx>) -> Self[src]
pub fn build_sibling_block(&self, name: &str) -> Self[src]
pub fn llbb(&self) -> &'ll BasicBlock[src]
pub fn set_span(&mut self, _span: Span)[src]
pub fn position_at_end(&mut self, llbb: &'ll BasicBlock)[src]
pub fn ret_void(&mut self)[src]
pub fn ret(&mut self, v: &'ll Value)[src]
pub fn br(&mut self, dest: &'ll BasicBlock)[src]
pub 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
)
pub 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)>
)
pub 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
pub fn unreachable(&mut self)[src]
pub fn add(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn fadd(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn sub(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn fsub(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn mul(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn fmul(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn udiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn exactudiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn sdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn exactsdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn fdiv(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn urem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn srem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn frem(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn shl(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn lshr(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn ashr(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn and(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn or(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn xor(&mut self, a: &'ll Value, b: &'ll Value) -> &'ll Value[src]
pub fn neg(&mut self, x: &'ll Value) -> &'ll Value[src]
pub fn fneg(&mut self, x: &'ll Value) -> &'ll Value[src]
pub fn not(&mut self, x: &'ll Value) -> &'ll Value[src]
pub fn unchecked_sadd(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn unchecked_uadd(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn unchecked_ssub(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn unchecked_usub(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn unchecked_smul(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn unchecked_umul(&mut self, x: &'ll Value, y: &'ll Value) -> &'ll Value[src]
pub fn fadd_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]
pub fn fsub_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]
pub fn fmul_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]
pub fn fdiv_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]
pub fn frem_fast(&mut self, lhs: &'ll Value, rhs: &'ll Value) -> &'ll Value[src]
pub 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)
pub fn from_immediate(&mut self, val: Self::Value) -> Self::Value[src]
pub fn to_immediate_scalar(
&mut self,
val: Self::Value,
scalar: &Scalar
) -> Self::Value[src]
&mut self,
val: Self::Value,
scalar: &Scalar
) -> Self::Value
pub fn alloca(&mut self, ty: &'ll Type, align: Align) -> &'ll Value[src]
pub fn dynamic_alloca(&mut self, ty: &'ll Type, align: Align) -> &'ll Value[src]
pub 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
pub fn load(&mut self, ptr: &'ll Value, align: Align) -> &'ll Value[src]
pub fn volatile_load(&mut self, ptr: &'ll Value) -> &'ll Value[src]
pub 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
pub 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>
pub 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
pub fn range_metadata(&mut self, load: &'ll Value, range: Range<u128>)[src]
pub fn nonnull_metadata(&mut self, load: &'ll Value)[src]
pub 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
pub 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
pub 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
)
pub fn gep(&mut self, ptr: &'ll Value, indices: &[&'ll Value]) -> &'ll Value[src]
pub fn inbounds_gep(
&mut self,
ptr: &'ll Value,
indices: &[&'ll Value]
) -> &'ll Value[src]
&mut self,
ptr: &'ll Value,
indices: &[&'ll Value]
) -> &'ll Value
pub fn struct_gep(&mut self, ptr: &'ll Value, idx: u64) -> &'ll Value[src]
pub fn trunc(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn sext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub 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>
pub 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>
pub fn fptosui_may_trap(&self, val: &'ll Value, dest_ty: &'ll Type) -> bool[src]
pub fn fptoui(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn fptosi(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn uitofp(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn sitofp(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn fptrunc(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn fpext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn ptrtoint(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn inttoptr(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn bitcast(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub 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
pub fn pointercast(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub 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
pub 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
pub 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
)
pub 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
)
pub 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
)
pub 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
pub fn va_arg(&mut self, list: &'ll Value, ty: &'ll Type) -> &'ll Value[src]
pub fn extract_element(
&mut self,
vec: &'ll Value,
idx: &'ll Value
) -> &'ll Value[src]
&mut self,
vec: &'ll Value,
idx: &'ll Value
) -> &'ll Value
pub fn vector_splat(&mut self, num_elts: usize, elt: &'ll Value) -> &'ll Value[src]
pub fn extract_value(&mut self, agg_val: &'ll Value, idx: u64) -> &'ll Value[src]
pub 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
pub 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
pub fn set_cleanup(&mut self, landing_pad: &'ll Value)[src]
pub fn resume(&mut self, exn: &'ll Value) -> &'ll Value[src]
pub 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>
pub 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
pub fn catch_pad(
&mut self,
parent: &'ll Value,
args: &[&'ll Value]
) -> Funclet<'ll>[src]
&mut self,
parent: &'ll Value,
args: &[&'ll Value]
) -> Funclet<'ll>
pub 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
pub fn add_handler(
&mut self,
catch_switch: &'ll Value,
handler: &'ll BasicBlock
)[src]
&mut self,
catch_switch: &'ll Value,
handler: &'ll BasicBlock
)
pub fn set_personality_fn(&mut self, personality: &'ll Value)[src]
pub 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
pub 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
pub fn atomic_fence(
&mut self,
order: AtomicOrdering,
scope: SynchronizationScope
)[src]
&mut self,
order: AtomicOrdering,
scope: SynchronizationScope
)
pub fn set_invariant_load(&mut self, load: &'ll Value)[src]
pub fn lifetime_start(&mut self, ptr: &'ll Value, size: Size)[src]
pub fn lifetime_end(&mut self, ptr: &'ll Value, size: Size)[src]
pub 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
)
pub 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
pub fn zext(&mut self, val: &'ll Value, dest_ty: &'ll Type) -> &'ll Value[src]
pub fn cx(&self) -> &CodegenCx<'ll, 'tcx>[src]
pub unsafe fn delete_basic_block(&mut self, bb: &'ll BasicBlock)[src]
pub 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]
pub 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.
pub 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
pub 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
pub 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
pub 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]
pub 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]
)
pub fn set_dbg_loc(&mut self, dbg_loc: &'ll DILocation)[src]
pub fn insert_reference_to_gdb_debug_scripts_section_global(&mut self)[src]
pub 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.
pub 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]
pub fn data_layout(&self) -> &TargetDataLayout[src]
impl<'tcx, '_, '_> HasParamEnv<'tcx> for Builder<'_, '_, 'tcx>[src]
impl<'_, '_, 'tcx> HasTargetSpec for Builder<'_, '_, 'tcx>[src]
pub 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]
pub 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
)
pub fn abort(&mut self)[src]
pub fn assume(&mut self, val: Self::Value)[src]
pub fn expect(&mut self, cond: Self::Value, expected: bool) -> Self::Value[src]
pub fn sideeffect(&mut self, unconditional: bool)[src]
pub fn va_start(&mut self, va_list: &'ll Value) -> &'ll Value[src]
pub 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>
pub 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]
pub 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>,