[−][src]Enum rustc_codegen_ssa::back::lto::LtoModuleCodegen

pub enum LtoModuleCodegen<B: WriteBackendMethods> {
    Fat {
        module: Option<ModuleCodegen<B::Module>>,
        _serialized_bitcode: Vec<SerializedModule<B::ModuleBuffer>>,
    },
    Thin(ThinModule<B>),
}

Variants

Fat

Fields of Fat

module: Option<ModuleCodegen<B::Module>>_serialized_bitcode: Vec<SerializedModule<B::ModuleBuffer>>
Thin(ThinModule<B>)

Implementations

impl<B: WriteBackendMethods> LtoModuleCodegen<B>[src]

pub fn name(&self) -> &str[src]

pub unsafe fn optimize(
    &mut self,
    cgcx: &CodegenContext<B>
) -> Result<ModuleCodegen<B::Module>, FatalError>
[src]

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.

pub fn cost(&self) -> u64[src]

A "gauge" of how costly it is to optimize this module, used to sort biggest modules first.

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> where
    <B as WriteBackendMethods>::Module: Send,
    <B as WriteBackendMethods>::ModuleBuffer: Send + Sync,
    <B as WriteBackendMethods>::ThinBuffer: Send + Sync,
    <B as WriteBackendMethods>::ThinData: Send + Sync, 

impl<B> Sync for LtoModuleCodegen<B> where
    <B as WriteBackendMethods>::Module: Sync,
    <B as WriteBackendMethods>::ModuleBuffer: Send + Sync,
    <B as WriteBackendMethods>::ThinBuffer: Send + Sync,
    <B as WriteBackendMethods>::ThinData: Send + Sync, 

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: RefUnwindSafe + UnwindSafe,
    <B as WriteBackendMethods>::ThinBuffer: RefUnwindSafe,
    <B as WriteBackendMethods>::ThinData: RefUnwindSafe, 

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.