Struct cranelift_codegen::machinst::vcode::VCode[][src]

pub struct VCode<I: VCodeInst> { /* fields omitted */ }

A function in “VCode” (virtualized-register code) form, after lowering. This is essentially a standard CFG of basic blocks, where each basic block consists of lowered instructions produced by the machine-specific backend.

Implementations

impl<I: VCodeInst> VCode<I>[src]

pub fn flags(&self) -> &Flags[src]

Returns the flags controlling this function’s compilation.

pub fn vreg_type(&self, vreg: VirtualReg) -> Type[src]

Get the IR-level type of a VReg.

pub fn have_ref_values(&self) -> bool[src]

Are there any reference-typed values at all among the vregs?

pub fn entry(&self) -> BlockIndex[src]

Get the entry block.

pub fn num_blocks(&self) -> usize[src]

Get the number of blocks. Block indices will be in the range 0 .. (self.num_blocks() - 1).

pub fn frame_size(&self) -> u32[src]

Stack frame size for the full function’s body.

pub fn stack_args_size(&self) -> u32[src]

Inbound stack-args size.

pub fn succs(&self, block: BlockIndex) -> &[BlockIx][src]

Get the successors for a block.

pub fn replace_insns_from_regalloc(&mut self, result: RegAllocResult<Self>)[src]

Take the results of register allocation, with a sequence of instructions including spliced fill/reload/move instructions, and replace the VCode with them.

pub fn emit(&self) -> MachBuffer<I> where
    I: MachInstEmit
[src]

Emit the instructions to a MachBuffer, containing fixed-up code and external reloc/trap/etc. records ready for use.

pub fn unwind_info(&self) -> CodegenResult<Option<UnwindInfo<Reg>>>[src]

Generates unwind info.

pub fn bindex_to_bb(&self, block: BlockIndex) -> Option<Block>[src]

Get the IR block for a BlockIndex, if one exists.

Trait Implementations

impl<I: VCodeInst> Debug for VCode<I>[src]

impl<I: VCodeInst> Function for VCode<I>[src]

type Inst = I

Regalloc is parameterized on F: Function and so can use the projected type F::Inst. Read more

impl<I: VCodeInst> PrettyPrint for VCode<I>[src]

Pretty-printing with RealRegUniverse context.

Auto Trait Implementations

impl<I> !RefUnwindSafe for VCode<I>

impl<I> !Send for VCode<I>

impl<I> !Sync for VCode<I>

impl<I> Unpin for VCode<I> where
    I: Unpin,
    <I as MachInstEmit>::Info: Unpin

impl<I> !UnwindSafe for VCode<I>

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<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[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.