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: usize
Number of cgus excluding the allocator/metadata modules
diag_emitter: SharedEmitter
Handler to use for diagnostics produced during codegen.
remark: Passes
LLVM optimizations for which we want to print remarks.
worker: usize
Worker thread number
incr_comp_session_dir: Option<PathBuf>
The incremental compilation session directory, or None if we are not compiling incrementally
cgu_reuse_tracker: CguReuseTracker
Used 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.