Struct rustc_codegen_ssa::back::write::CodegenContext
source · pub struct CodegenContext<B: WriteBackendMethods> {Show 30 fields
pub backend: B,
pub prof: SelfProfilerRef,
pub lto: Lto,
pub save_temps: bool,
pub fewer_names: bool,
pub time_trace: bool,
pub exported_symbols: Option<Arc<ExportedSymbols>>,
pub opts: Arc<Options>,
pub crate_types: Vec<CrateType>,
pub each_linked_rlib_for_lto: Vec<(CrateNum, PathBuf)>,
pub output_filenames: Arc<OutputFilenames>,
pub regular_module_config: Arc<ModuleConfig>,
pub metadata_module_config: Arc<ModuleConfig>,
pub allocator_module_config: Arc<ModuleConfig>,
pub tm_factory: TargetMachineFactoryFn<B>,
pub msvc_imps_needed: bool,
pub is_pe_coff: bool,
pub target_can_use_split_dwarf: bool,
pub target_pointer_width: u32,
pub target_arch: String,
pub debuginfo: DebugInfo,
pub split_debuginfo: SplitDebuginfo,
pub split_dwarf_kind: SplitDwarfKind,
pub total_cgus: usize,
pub diag_emitter: SharedEmitter,
pub remark: Passes,
pub worker: usize,
pub incr_comp_session_dir: Option<PathBuf>,
pub cgu_reuse_tracker: CguReuseTracker,
pub coordinator_send: Sender<Box<dyn Any + Send>>,
}Expand description
Additional resources used by optimize_and_codegen (not module specific)
Fields§
§backend: B§prof: SelfProfilerRef§lto: Lto§save_temps: bool§fewer_names: bool§time_trace: bool§exported_symbols: Option<Arc<ExportedSymbols>>§opts: Arc<Options>§crate_types: Vec<CrateType>§each_linked_rlib_for_lto: Vec<(CrateNum, PathBuf)>§output_filenames: Arc<OutputFilenames>§regular_module_config: Arc<ModuleConfig>§metadata_module_config: Arc<ModuleConfig>§allocator_module_config: Arc<ModuleConfig>§tm_factory: TargetMachineFactoryFn<B>§msvc_imps_needed: bool§is_pe_coff: bool§target_can_use_split_dwarf: bool§target_pointer_width: u32§target_arch: String§debuginfo: DebugInfo§split_debuginfo: SplitDebuginfo§split_dwarf_kind: SplitDwarfKind§total_cgus: usizeNumber of cgus excluding the allocator/metadata modules
diag_emitter: SharedEmitterHandler to use for diagnostics produced during codegen.
remark: PassesLLVM optimizations for which we want to print remarks.
worker: usizeWorker thread number
incr_comp_session_dir: Option<PathBuf>The incremental compilation session directory, or None if we are not compiling incrementally
cgu_reuse_tracker: CguReuseTrackerUsed to update CGU re-use information during the thinlto phase.
coordinator_send: Sender<Box<dyn Any + Send>>Channel back to the main control thread to send messages to
Implementations§
source§impl<B: WriteBackendMethods> CodegenContext<B>
impl<B: WriteBackendMethods> CodegenContext<B>
pub fn create_diag_handler(&self) -> Handler
pub fn config(&self, kind: ModuleKind) -> &ModuleConfig
Trait Implementations§
source§impl<B: Clone + WriteBackendMethods> Clone for CodegenContext<B>
impl<B: Clone + WriteBackendMethods> Clone for CodegenContext<B>
source§fn clone(&self) -> CodegenContext<B>
fn clone(&self) -> CodegenContext<B>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<B> !RefUnwindSafe for CodegenContext<B>
impl<B> Send for CodegenContext<B>where
B: Send,
impl<B> !Sync for CodegenContext<B>
impl<B> Unpin for CodegenContext<B>where
B: Unpin,
impl<B> !UnwindSafe for CodegenContext<B>
Blanket Implementations§
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.