rustc_codegen_ssa::traits::backend

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 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,

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§