pub struct PassBuilder { /* private fields */ }
Expand description

Main struct for registering callbacks.

Implementations§

Register a new pipeline parsing callback.

These callbacks can be used to parse a single pass name, and populate the given ModulePassManager accordingly.

Register a new pipeline parsing callback.

These callbacks can be used to parse a single pass name, and populate the given FunctionPassManager accordingly.

Register a new callback for analysis registration.

These callbacks can be used to register custom analyses with the given ModuleAnalysisManager.

Register a new callback for analysis registration.

These callbacks can be used to register custom analyses with the given FunctionAnalysisManager.

Register a new callback to be triggered at the peephole extension point.

From the LLVM documentation

This extension point allows adding passes that perform peephole optimizations similar to the instruction combiner.

These passes will be inserted after each instance of the instruction combiner pass.

Register a new callback to be triggered at the optimizer late extension point.

From the LLVM documentation

This extension point allows adding optimization passes after most of the main optimizations, but before the last cleanup-ish optimizations.

Register a new callback to be triggered at the vectorizer start extension point.

From the LLVM documentation

This extension point allows adding optimization passes before the vectorizer and other highly target specific optimization passes are executed.

Available on crate features llvm12-0 or llvm13-0 or llvm14-0 or llvm15-0 only.

Register a new callback to be triggered at the pipeline start extension point.

From the LLVM documentation

This extension point allows adding optimization once at the start of the pipeline. This does not apply to ‘backend’ compiles (LTO and ThinLTO link-time pipelines).

Available on crate features llvm12-0 or llvm13-0 or llvm14-0 or llvm15-0 only.

Register a new callback to be triggered at the pipeline early simplification extension point.

From the LLVM documentation

This extension point allows adding optimization right after passes that do basic simplification of the input IR.

Available on crate features llvm11-0 or llvm12-0 or llvm13-0 or llvm14-0 or llvm15-0 only.

Register a new callback to be triggered at the optimizer last extension point.

From the LLVM documentation

This extension point allows adding passes that run after everything else.

Available on crate feature llvm15-0 only.

Register a new callback to be triggered at the full LTO early extension point.

From the LLVM documentation

This extension point allow adding passes that run at Link Time, before Full Link Time Optimization.

Available on crate feature llvm15-0 only.

Register a new callback to be triggered at the full LTO last extension point.

From the LLVM documentation

This extensions point allow adding passes that run at Link Time, after Full Link Time Optimization.

Available on crate feature llvm15-0 only.

Register a new callback to be triggered at the optimizer early extension point.

From the LLVM documentation

This extension point allows adding passes just before the main module-level optimization passes.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.