[][src]Struct inkwell::passes::PassManagerBuilder

pub struct PassManagerBuilder { /* fields omitted */ }

Methods

impl PassManagerBuilder[src]

pub fn create() -> Self[src]

pub fn set_optimization_level(&self, opt_level: OptimizationLevel)[src]

pub fn set_size_level(&self, size_level: u32)[src]

pub fn set_disable_unit_at_a_time(&self, disable: bool)[src]

pub fn set_disable_unroll_loops(&self, disable: bool)[src]

pub fn set_disable_simplify_lib_calls(&self, disable: bool)[src]

pub fn set_inliner_with_threshold(&self, threshold: u32)[src]

pub fn populate_function_pass_manager(
    &self,
    pass_manager: &PassManager<FunctionValue>
)
[src]

Populates a PassManager with the expectation of function transformations.

Example

use inkwell::OptimizationLevel::Aggressive;
use inkwell::module::Module;
use inkwell::passes::{PassManager, PassManagerBuilder};

let module = Module::create("mod");
let pass_manager_builder = PassManagerBuilder::create();

pass_manager_builder.set_optimization_level(Aggressive);

let fpm = PassManager::create(&module);

pass_manager_builder.populate_function_pass_manager(&fpm);

pub fn populate_module_pass_manager(&self, pass_manager: &PassManager<Module>)[src]

Populates a PassManager with the expectation of whole module transformations.

Example

use inkwell::OptimizationLevel::Aggressive;
use inkwell::passes::{PassManager, PassManagerBuilder};
use inkwell::targets::{InitializationConfig, Target};

let config = InitializationConfig::default();
Target::initialize_native(&config).unwrap();
let pass_manager_builder = PassManagerBuilder::create();

pass_manager_builder.set_optimization_level(Aggressive);

let fpm = PassManager::create(());

pass_manager_builder.populate_module_pass_manager(&fpm);

pub fn populate_lto_pass_manager(
    &self,
    pass_manager: &PassManager<Module>,
    internalize: bool,
    run_inliner: bool
)
[src]

Populates a PassManager with the expectation of link time optimization transformations.

Example

use inkwell::OptimizationLevel::Aggressive;
use inkwell::passes::{PassManager, PassManagerBuilder};
use inkwell::targets::{InitializationConfig, Target};

let config = InitializationConfig::default();
Target::initialize_native(&config).unwrap();
let pass_manager_builder = PassManagerBuilder::create();

pass_manager_builder.set_optimization_level(Aggressive);

let lpm = PassManager::create(());

pass_manager_builder.populate_lto_pass_manager(&lpm, false, false);

Trait Implementations

impl Drop for PassManagerBuilder[src]

impl Debug for PassManagerBuilder[src]

Auto Trait Implementations

impl !Sync for PassManagerBuilder

impl !Send for PassManagerBuilder

impl Unpin for PassManagerBuilder

impl UnwindSafe for PassManagerBuilder

impl RefUnwindSafe for PassManagerBuilder

Blanket Implementations

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

impl<T> From<T> for 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.

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

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

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