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 method
    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 { ... }
}

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,

Object Safety§

This trait is not object safe.

Implementors§