Enum rustc_codegen_ssa::back::lto::LtoModuleCodegen [−][src]
pub enum LtoModuleCodegen<B: WriteBackendMethods> {
Fat {
module: Option<ModuleCodegen<B::Module>>,
_serialized_bitcode: Vec<SerializedModule<B::ModuleBuffer>>,
},
Thin(ThinModule<B>),
}
Variants
Fields of Fat
module: Option<ModuleCodegen<B::Module>>
_serialized_bitcode: Vec<SerializedModule<B::ModuleBuffer>>
Thin(ThinModule<B>)
Tuple Fields of Thin
0: ThinModule<B>
Implementations
pub unsafe fn optimize(
&mut self,
cgcx: &CodegenContext<B>
) -> Result<ModuleCodegen<B::Module>, FatalError>
pub unsafe fn optimize(
&mut self,
cgcx: &CodegenContext<B>
) -> Result<ModuleCodegen<B::Module>, FatalError>
Optimize this module within the given codegen context.
This function is unsafe as it’ll return a ModuleCodegen
still
points to LLVM data structures owned by this LtoModuleCodegen
.
It’s intended that the module returned is immediately code generated and
dropped, and then this LTO module is dropped.
Auto Trait Implementations
impl<B> RefUnwindSafe for LtoModuleCodegen<B> where
<B as WriteBackendMethods>::Module: RefUnwindSafe,
<B as WriteBackendMethods>::ModuleBuffer: RefUnwindSafe,
<B as WriteBackendMethods>::ThinBuffer: RefUnwindSafe,
<B as WriteBackendMethods>::ThinData: RefUnwindSafe,
impl<B> Send for LtoModuleCodegen<B>
impl<B> Sync for LtoModuleCodegen<B>
impl<B> Unpin for LtoModuleCodegen<B> where
<B as WriteBackendMethods>::Module: Unpin,
<B as WriteBackendMethods>::ModuleBuffer: Unpin,
impl<B> UnwindSafe for LtoModuleCodegen<B> where
<B as WriteBackendMethods>::Module: UnwindSafe,
<B as WriteBackendMethods>::ModuleBuffer: UnwindSafe + RefUnwindSafe,
<B as WriteBackendMethods>::ThinBuffer: RefUnwindSafe,
<B as WriteBackendMethods>::ThinData: RefUnwindSafe,
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.