Trait rustc_codegen_ssa::traits::backend::CodegenBackend[][src]

pub trait CodegenBackend {
    fn metadata_loader(&self) -> Box<MetadataLoaderDyn>;
fn provide(&self, _providers: &mut Providers);
fn provide_extern(&self, _providers: &mut Providers);
fn codegen_crate<'tcx>(
        &self,
        tcx: TyCtxt<'tcx>,
        metadata: EncodedMetadata,
        need_metadata_module: bool
    ) -> Box<dyn Any>;
fn join_codegen(
        &self,
        ongoing_codegen: Box<dyn Any>,
        sess: &Session
    ) -> Result<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>), ErrorReported>;
fn link(
        &self,
        sess: &Session,
        codegen_results: CodegenResults,
        outputs: &OutputFilenames
    ) -> Result<(), ErrorReported>; fn init(&self, _sess: &Session) { ... }
fn print(&self, _req: PrintRequest, _sess: &Session) { ... }
fn target_features(&self, _sess: &Session) -> Vec<Symbol> { ... }
fn print_passes(&self) { ... }
fn print_version(&self) { ... }
fn target_override(&self, _opts: &Options) -> Option<Target> { ... } }

Required methods

fn metadata_loader(&self) -> Box<MetadataLoaderDyn>[src]

fn provide(&self, _providers: &mut Providers)[src]

fn provide_extern(&self, _providers: &mut Providers)[src]

fn codegen_crate<'tcx>(
    &self,
    tcx: TyCtxt<'tcx>,
    metadata: EncodedMetadata,
    need_metadata_module: bool
) -> Box<dyn Any>
[src]

fn join_codegen(
    &self,
    ongoing_codegen: Box<dyn Any>,
    sess: &Session
) -> Result<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>), ErrorReported>
[src]

This is called on the returned Box<dyn Any> from codegen_backend

Panics

Panics when the passed Box<dyn Any> was not returned by codegen_backend.

This is called on the returned Box<dyn Any> from join_codegen

Panics

Panics when the passed Box<dyn Any> was not returned by join_codegen.

Loading content...

Provided methods

fn init(&self, _sess: &Session)[src]

fn print(&self, _req: PrintRequest, _sess: &Session)[src]

fn target_features(&self, _sess: &Session) -> Vec<Symbol>[src]

fn print_passes(&self)[src]

fn print_version(&self)[src]

fn target_override(&self, _opts: &Options) -> Option<Target>[src]

If this plugin provides additional builtin targets, provide the one enabled by the options here. Be careful: this is called before init() is called.

Loading content...

Implementors

Loading content...