Trait ExtraBackendMethods

Source
pub trait ExtraBackendMethods:
    CodegenBackend
    + WriteBackendMethods
    + Sized
    + Send
    + Sync
    + DynSend
    + DynSync {
    // Required methods
    fn codegen_allocator<'tcx>(
        &self,
        tcx: TyCtxt<'tcx>,
        module_name: &str,
        kind: AllocatorKind,
        alloc_error_handler_kind: AllocatorKind,
    ) -> Self::Module;
    fn compile_codegen_unit(
        &self,
        tcx: TyCtxt<'_>,
        cgu_name: Symbol,
    ) -> (ModuleCodegen<Self::Module>, u64);
    fn target_machine_factory(
        &self,
        sess: &Session,
        opt_level: OptLevel,
        target_features: &[String],
    ) -> TargetMachineFactoryFn<Self>;

    // Provided methods
    fn spawn_named_thread<F, T>(
        _time_trace: bool,
        name: String,
        f: F,
    ) -> Result<JoinHandle<T>>
       where F: FnOnce() -> T + Send + 'static,
             T: Send + 'static { ... }
    fn supports_parallel(&self) -> bool { ... }
}

Required Methods§

Source

fn codegen_allocator<'tcx>( &self, tcx: TyCtxt<'tcx>, module_name: &str, kind: AllocatorKind, alloc_error_handler_kind: AllocatorKind, ) -> Self::Module

Source

fn compile_codegen_unit( &self, tcx: TyCtxt<'_>, cgu_name: Symbol, ) -> (ModuleCodegen<Self::Module>, u64)

This generates the codegen unit and returns it along with a u64 giving an estimate of the unit’s processing cost.

Source

fn target_machine_factory( &self, sess: &Session, opt_level: OptLevel, target_features: &[String], ) -> TargetMachineFactoryFn<Self>

Provided Methods§

Source

fn spawn_named_thread<F, T>( _time_trace: bool, name: String, f: F, ) -> Result<JoinHandle<T>>
where F: FnOnce() -> T + Send + 'static, T: Send + 'static,

Source

fn supports_parallel(&self) -> bool

Returns true if this backend can be safely called from multiple threads.

Defaults to true.

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§