[][src]Struct rustc_codegen_ssa::mir::FunctionCx

pub struct FunctionCx<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> {
    instance: Instance<'tcx>,
    mir: &'tcx Body<'tcx>,
    debug_context: Option<FunctionDebugContext<Bx::DIScope>>,
    llfn: Bx::Function,
    cx: &'a Bx::CodegenCx,
    fn_abi: FnAbi<'tcx, Ty<'tcx>>,
    personality_slot: Option<PlaceRef<'tcx, Bx::Value>>,
    blocks: IndexVec<BasicBlock, Bx::BasicBlock>,
    cleanup_kinds: IndexVec<BasicBlock, CleanupKind>,
    funclets: IndexVec<BasicBlock, Option<Bx::Funclet>>,
    landing_pads: IndexVec<BasicBlock, Option<Bx::BasicBlock>>,
    unreachable_block: Option<Bx::BasicBlock>,
    locals: IndexVec<Local, LocalRef<'tcx, Bx::Value>>,
    per_local_var_debug_info: Option<IndexVec<Local, Vec<PerLocalVarDebugInfo<'tcx, Bx::DIVariable>>>>,
    caller_location: Option<OperandRef<'tcx, Bx::Value>>,
}
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Master context for codegenning from MIR.

Fields

instance: Instance<'tcx>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

mir: &'tcx Body<'tcx>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

debug_context: Option<FunctionDebugContext<Bx::DIScope>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

llfn: Bx::Function
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

cx: &'a Bx::CodegenCx
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn_abi: FnAbi<'tcx, Ty<'tcx>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

personality_slot: Option<PlaceRef<'tcx, Bx::Value>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

When unwinding is initiated, we have to store this personality value somewhere so that we can load it and re-use it in the resume instruction. The personality is (afaik) some kind of value used for C++ unwinding, which must filter by type: we don't really care about it very much. Anyway, this value contains an alloca into which the personality is stored and then later loaded when generating the DIVERGE_BLOCK.

blocks: IndexVec<BasicBlock, Bx::BasicBlock>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

A Block for each MIR BasicBlock

cleanup_kinds: IndexVec<BasicBlock, CleanupKind>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

The funclet status of each basic block

funclets: IndexVec<BasicBlock, Option<Bx::Funclet>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

When targeting MSVC, this stores the cleanup info for each funclet BB. This is initialized as we compute the funclets' head block in RPO.

landing_pads: IndexVec<BasicBlock, Option<Bx::BasicBlock>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

This stores the landing-pad block for a given BB, computed lazily on GNU and eagerly on MSVC.

unreachable_block: Option<Bx::BasicBlock>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Cached unreachable block

locals: IndexVec<Local, LocalRef<'tcx, Bx::Value>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

The location where each MIR arg/var/tmp/ret is stored. This is usually an PlaceRef representing an alloca, but not always: sometimes we can skip the alloca and just store the value directly using an OperandRef, which makes for tighter LLVM IR. The conditions for using an OperandRef are as follows:

Avoiding allocs can also be important for certain intrinsics, notably expect.

per_local_var_debug_info: Option<IndexVec<Local, Vec<PerLocalVarDebugInfo<'tcx, Bx::DIVariable>>>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

All VarDebugInfo from the MIR body, partitioned by Local. This is None if no var#[non_exhaustive]iable debuginfo/names are needed.

caller_location: Option<OperandRef<'tcx, Bx::Value>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Caller location propagated if this function has #[track_caller].

Implementations

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

Codegen implementations for some terminator variants.

fn codegen_resume_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Generates code for a Resume terminator.

fn codegen_switchint_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx,
    discr: &Operand<'tcx>,
    switch_ty: Ty<'tcx>,
    values: &Cow<'tcx, [u128]>,
    targets: &Vec<BasicBlock>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_return_terminator(&mut self, bx: Bx)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_drop_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx,
    location: Place<'tcx>,
    target: BasicBlock,
    unwind: Option<BasicBlock>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_assert_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx,
    terminator: &Terminator<'tcx>,
    cond: &Operand<'tcx>,
    expected: bool,
    msg: &AssertMessage<'tcx>,
    target: BasicBlock,
    cleanup: Option<BasicBlock>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_panic_intrinsic(
    &mut self,
    helper: &TerminatorCodegenHelper<'tcx>,
    bx: &mut Bx,
    intrinsic: Option<&str>,
    instance: Option<Instance<'tcx>>,
    span: Span,
    destination: &Option<(Place<'tcx>, BasicBlock)>,
    cleanup: Option<BasicBlock>
) -> bool
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Returns true if this is indeed a panic intrinsic and codegen is done.

fn codegen_call_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx,
    terminator: &Terminator<'tcx>,
    func: &Operand<'tcx>,
    args: &Vec<Operand<'tcx>>,
    destination: &Option<(Place<'tcx>, BasicBlock)>,
    cleanup: Option<BasicBlock>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_asm_terminator(
    &mut self,
    helper: TerminatorCodegenHelper<'tcx>,
    bx: Bx,
    terminator: &Terminator<'tcx>,
    template: &[InlineAsmTemplatePiece],
    operands: &[InlineAsmOperand<'tcx>],
    options: InlineAsmOptions,
    line_spans: &[Span],
    destination: Option<BasicBlock>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn codegen_block(&mut self, bb: BasicBlock)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_terminator(
    &mut self,
    bx: Bx,
    bb: BasicBlock,
    terminator: &'tcx Terminator<'tcx>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_argument(
    &mut self,
    bx: &mut Bx,
    op: OperandRef<'tcx, Bx::Value>,
    llargs: &mut Vec<Bx::Value>,
    arg: &ArgAbi<'tcx, Ty<'tcx>>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_arguments_untupled(
    &mut self,
    bx: &mut Bx,
    operand: &Operand<'tcx>,
    llargs: &mut Vec<Bx::Value>,
    args: &[ArgAbi<'tcx, Ty<'tcx>>]
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn get_caller_location(
    &mut self,
    bx: &mut Bx,
    span: Span
) -> OperandRef<'tcx, Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn get_personality_slot(&mut self, bx: &mut Bx) -> PlaceRef<'tcx, Bx::Value>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn landing_pad_to(&mut self, target_bb: BasicBlock) -> Bx::BasicBlock[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Returns the landing-pad wrapper around the given basic block.

No-op in MSVC SEH scheme.

fn landing_pad_uncached(&mut self, target_bb: Bx::BasicBlock) -> Bx::BasicBlock[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn landing_pad_type(&self) -> Bx::Type[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn unreachable_block(&mut self) -> Bx::BasicBlock[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn new_block(&self, name: &str) -> Bx[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn build_block(&self, bb: BasicBlock) -> Bx[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn make_return_dest(
    &mut self,
    bx: &mut Bx,
    dest: Place<'tcx>,
    fn_ret: &ArgAbi<'tcx, Ty<'tcx>>,
    llargs: &mut Vec<Bx::Value>,
    is_intrinsic: bool
) -> ReturnDest<'tcx, Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_transmute(
    &mut self,
    bx: &mut Bx,
    src: &Operand<'tcx>,
    dst: Place<'tcx>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_transmute_into(
    &mut self,
    bx: &mut Bx,
    src: &Operand<'tcx>,
    dst: PlaceRef<'tcx, Bx::Value>
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn store_return(
    &mut self,
    bx: &mut Bx,
    dest: ReturnDest<'tcx, Bx::Value>,
    ret_abi: &ArgAbi<'tcx, Ty<'tcx>>,
    llval: Bx::Value
)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn eval_mir_constant_to_operand(
    &mut self,
    bx: &mut Bx,
    constant: &Constant<'tcx>
) -> Result<OperandRef<'tcx, Bx::Value>, ErrorHandled>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn eval_mir_constant(
    &mut self,
    constant: &Constant<'tcx>
) -> Result<ConstValue<'tcx>, ErrorHandled>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn simd_shuffle_indices(
    &mut self,
    bx: &Bx,
    span: Span,
    ty: Ty<'tcx>,
    constant: Result<ConstValue<'tcx>, ErrorHandled>
) -> (Bx::Value, Ty<'tcx>)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

process constant containing SIMD shuffle indices

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn set_debug_loc(&self, bx: &mut Bx, source_info: SourceInfo)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn debug_loc(&self, source_info: SourceInfo) -> (Option<Bx::DIScope>, Span)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn scope_metadata_for_loc(
    &self,
    scope_id: SourceScope,
    pos: BytePos
) -> Option<Bx::DIScope>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn debug_introduce_local(&self, bx: &mut Bx, local: Local)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Apply debuginfo and/or name, after creating the alloca for a local, or initializing the local with an operand (whichever applies).

pub fn debug_introduce_locals(&self, bx: &mut Bx)[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn compute_per_local_var_debug_info(
    &self
) -> Option<IndexVec<Local, Vec<PerLocalVarDebugInfo<'tcx, Bx::DIVariable>>>>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Partition all VarDebugInfo in self.mir, by their base Local.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

fn maybe_codegen_consume_direct(
    &mut self,
    bx: &mut Bx,
    place_ref: PlaceRef<'tcx>
) -> Option<OperandRef<'tcx, Bx::Value>>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_consume(
    &mut self,
    bx: &mut Bx,
    place_ref: PlaceRef<'tcx>
) -> OperandRef<'tcx, Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_operand(
    &mut self,
    bx: &mut Bx,
    operand: &Operand<'tcx>
) -> OperandRef<'tcx, Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn codegen_place(
    &mut self,
    bx: &mut Bx,
    place_ref: PlaceRef<'tcx>
) -> PlaceRef<'tcx, Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn monomorphized_place_ty(&self, place_ref: PlaceRef<'tcx>) -> Ty<'tcx>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn codegen_rvalue(
    &mut self,
    bx: Bx,
    dest: PlaceRef<'tcx, Bx::Value>,
    rvalue: &Rvalue<'tcx>
) -> Bx
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_rvalue_unsized(
    &mut self,
    bx: Bx,
    indirect_dest: PlaceRef<'tcx, Bx::Value>,
    rvalue: &Rvalue<'tcx>
) -> Bx
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_rvalue_operand(
    &mut self,
    bx: Bx,
    rvalue: &Rvalue<'tcx>
) -> (Bx, OperandRef<'tcx, Bx::Value>)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn evaluate_array_len(&mut self, bx: &mut Bx, place: Place<'tcx>) -> Bx::Value[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

fn codegen_place_to_pointer(
    &mut self,
    bx: Bx,
    place: Place<'tcx>,
    mk_ptr_ty: impl FnOnce(TyCtxt<'tcx>, Ty<'tcx>) -> Ty<'tcx>
) -> (Bx, OperandRef<'tcx, Bx::Value>)
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Codegen an Rvalue::AddressOf or Rvalue::Ref

pub fn codegen_scalar_binop(
    &mut self,
    bx: &mut Bx,
    op: BinOp,
    lhs: Bx::Value,
    rhs: Bx::Value,
    input_ty: Ty<'tcx>
) -> Bx::Value
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_fat_ptr_binop(
    &mut self,
    bx: &mut Bx,
    op: BinOp,
    lhs_addr: Bx::Value,
    lhs_extra: Bx::Value,
    rhs_addr: Bx::Value,
    rhs_extra: Bx::Value,
    _input_ty: Ty<'tcx>
) -> Bx::Value
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn codegen_scalar_checked_binop(
    &mut self,
    bx: &mut Bx,
    op: BinOp,
    lhs: Bx::Value,
    rhs: Bx::Value,
    input_ty: Ty<'tcx>
) -> OperandValue<Bx::Value>
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn rvalue_creates_operand(&self, rvalue: &Rvalue<'tcx>, span: Span) -> bool[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn codegen_statement(&mut self, bx: Bx, statement: &Statement<'tcx>) -> Bx[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx>[src]

pub fn monomorphize<T>(&self, value: &T) -> T where
    T: Copy + TypeFoldable<'tcx>, 
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Auto Trait Implementations

impl<'a, 'tcx, Bx> !RefUnwindSafe for FunctionCx<'a, 'tcx, Bx>

impl<'a, 'tcx, Bx> !Send for FunctionCx<'a, 'tcx, Bx>

impl<'a, 'tcx, Bx> !Sync for FunctionCx<'a, 'tcx, Bx>

impl<'a, 'tcx, Bx> Unpin for FunctionCx<'a, 'tcx, Bx> where
    <Bx as BackendTypes>::BasicBlock: Unpin,
    <Bx as BackendTypes>::DIScope: Unpin,
    <Bx as BackendTypes>::DIVariable: Unpin,
    <Bx as BackendTypes>::Funclet: Unpin,
    <Bx as BackendTypes>::Function: Unpin,
    <Bx as BackendTypes>::Value: Unpin

impl<'a, 'tcx, Bx> !UnwindSafe for FunctionCx<'a, 'tcx, Bx>

Blanket Implementations

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

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

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

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Cast for T

impl<T> Erased for T[src]

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

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

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

type Error = !

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<T> Same<T> for T

type Output = T

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Should always be Self

impl<E> SpecializationError for E[src]

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.

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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

impl<T> WithConstness for T[src]