cranelift_codegen::ir

Trait InstBuilderBase

Source
pub trait InstBuilderBase<'f>: Sized {
    // Required methods
    fn data_flow_graph(&self) -> &DataFlowGraph;
    fn data_flow_graph_mut(&mut self) -> &mut DataFlowGraph;
    fn build(
        self,
        data: InstructionData,
        ctrl_typevar: Type,
    ) -> (Inst, &'f mut DataFlowGraph);
}
Expand description

Base trait for instruction builders.

The InstBuilderBase trait provides the basic functionality required by the methods of the generated InstBuilder trait. These methods should not normally be used directly. Use the methods in the InstBuilder trait instead.

Any data type that implements InstBuilderBase also gets all the methods of the InstBuilder trait.

Required Methods§

Source

fn data_flow_graph(&self) -> &DataFlowGraph

Get an immutable reference to the data flow graph that will hold the constructed instructions.

Source

fn data_flow_graph_mut(&mut self) -> &mut DataFlowGraph

Get a mutable reference to the data flow graph that will hold the constructed instructions.

Source

fn build( self, data: InstructionData, ctrl_typevar: Type, ) -> (Inst, &'f mut DataFlowGraph)

Insert an instruction and return a reference to it, consuming the builder.

The result types may depend on a controlling type variable. For non-polymorphic instructions with multiple results, pass INVALID for the ctrl_typevar argument.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'f> InstBuilderBase<'f> for ReplaceBuilder<'f>

Source§

impl<'f, IIB: InstInserterBase<'f>> InstBuilderBase<'f> for InsertBuilder<'f, IIB>