Struct llvm_plugin_inkwell::passes::PassManagerBuilder
source · [−]pub struct PassManagerBuilder { /* private fields */ }Implementations
sourceimpl PassManagerBuilder
impl PassManagerBuilder
pub fn create() -> Self
pub fn set_optimization_level(&self, opt_level: OptimizationLevel)
pub fn set_size_level(&self, size_level: u32)
pub fn set_disable_unit_at_a_time(&self, disable: bool)
pub fn set_disable_unroll_loops(&self, disable: bool)
pub fn set_disable_simplify_lib_calls(&self, disable: bool)
pub fn set_inliner_with_threshold(&self, threshold: u32)
sourcepub fn populate_function_pass_manager(
&self,
pass_manager: &PassManager<FunctionValue<'_>>
)
pub fn populate_function_pass_manager(
&self,
pass_manager: &PassManager<FunctionValue<'_>>
)
Populates a PassManager
Example
use inkwell::context::Context;
use inkwell::OptimizationLevel::Aggressive;
use inkwell::passes::{PassManager, PassManagerBuilder};
let context = Context::create();
let module = context.create_module("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);sourcepub fn populate_module_pass_manager(
&self,
pass_manager: &PassManager<Module<'_>>
)
pub fn populate_module_pass_manager(
&self,
pass_manager: &PassManager<Module<'_>>
)
Populates a PassManager
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);sourcepub fn populate_lto_pass_manager(
&self,
pass_manager: &PassManager<Module<'_>>,
internalize: bool,
run_inliner: bool
)
pub fn populate_lto_pass_manager(
&self,
pass_manager: &PassManager<Module<'_>>,
internalize: bool,
run_inliner: bool
)
Populates a PassManager
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
sourceimpl Debug for PassManagerBuilder
impl Debug for PassManagerBuilder
Auto Trait Implementations
impl RefUnwindSafe for PassManagerBuilder
impl !Send for PassManagerBuilder
impl !Sync for PassManagerBuilder
impl Unpin for PassManagerBuilder
impl UnwindSafe for PassManagerBuilder
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more