pub struct CodegenContext<B: WriteBackendMethods> {Show 26 fields
pub prof: SelfProfilerRef,
pub lto: Lto,
pub save_temps: bool,
pub fewer_names: bool,
pub time_trace: bool,
pub opts: Arc<Options>,
pub crate_types: Vec<CrateType>,
pub output_filenames: Arc<OutputFilenames>,
pub invocation_temp: Option<String>,
pub module_config: Arc<ModuleConfig>,
pub allocator_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_arch: String,
pub target_is_like_darwin: bool,
pub target_is_like_aix: bool,
pub split_debuginfo: SplitDebuginfo,
pub split_dwarf_kind: SplitDwarfKind,
pub pointer_size: Size,
pub diag_emitter: SharedEmitter,
pub remark: Passes,
pub remark_dir: Option<PathBuf>,
pub incr_comp_session_dir: Option<PathBuf>,
pub parallel: bool,
}Expand description
Additional resources used by optimize_and_codegen (not module specific)
Fields§
§prof: SelfProfilerRef§lto: Lto§save_temps: bool§fewer_names: bool§time_trace: bool§opts: Arc<Options>§crate_types: Vec<CrateType>§output_filenames: Arc<OutputFilenames>§invocation_temp: Option<String>§module_config: Arc<ModuleConfig>§allocator_config: Arc<ModuleConfig>§tm_factory: TargetMachineFactoryFn<B>§msvc_imps_needed: bool§is_pe_coff: bool§target_can_use_split_dwarf: bool§target_arch: String§target_is_like_darwin: bool§target_is_like_aix: bool§split_debuginfo: SplitDebuginfo§split_dwarf_kind: SplitDwarfKind§pointer_size: Size§diag_emitter: SharedEmitterEmitter to use for diagnostics produced during codegen.
remark: PassesLLVM optimizations for which we want to print remarks.
remark_dir: Option<PathBuf>Directory into which should the LLVM optimization remarks be written.
If None, they will be written to stderr.
incr_comp_session_dir: Option<PathBuf>The incremental compilation session directory, or None if we are not compiling incrementally
parallel: booltrue if the codegen should be run in parallel.
Depends on ExtraBackendMethods::supports_parallel() and -Zno_parallel_backend.
Implementations§
Source§impl<B: WriteBackendMethods> CodegenContext<B>
impl<B: WriteBackendMethods> CodegenContext<B>
pub fn create_dcx(&self) -> DiagCtxt
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>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<B> !DynSend for CodegenContext<B>
impl<B> !DynSync for CodegenContext<B>
impl<B> Freeze for CodegenContext<B>
impl<B> !RefUnwindSafe for CodegenContext<B>
impl<B> Send for CodegenContext<B>
impl<B> Sync for CodegenContext<B>
impl<B> Unpin for CodegenContext<B>
impl<B> !UnwindSafe for CodegenContext<B>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
Source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 248 bytes