pub struct InterproceduralInlinePass {
pub config: InlineConfig,
pub budget: InlineBudget,
pub history: InlineHistory,
pub trace: InlineTrace,
pub stats: ExtendedInlineStats,
pub context_stack: InlineContextStack,
}Expand description
Full interprocedural inlining pass that combines:
- Call graph construction
- SCC-based inlining order
- Budget enforcement
- Hot-path detection
- History tracking to prevent redundant inlining
Fields§
§config: InlineConfig§budget: InlineBudget§history: InlineHistory§trace: InlineTrace§stats: ExtendedInlineStats§context_stack: InlineContextStackImplementations§
Source§impl InterproceduralInlinePass
impl InterproceduralInlinePass
Sourcepub fn new(config: InlineConfig) -> Self
pub fn new(config: InlineConfig) -> Self
Create a new interprocedural inline pass with the given config.
Sourcepub fn run(&mut self, decls: &mut Vec<LcnfFunDecl>)
pub fn run(&mut self, decls: &mut Vec<LcnfFunDecl>)
Run the pass over a set of function declarations.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for InterproceduralInlinePass
impl RefUnwindSafe for InterproceduralInlinePass
impl Send for InterproceduralInlinePass
impl Sync for InterproceduralInlinePass
impl Unpin for InterproceduralInlinePass
impl UnsafeUnpin for InterproceduralInlinePass
impl UnwindSafe for InterproceduralInlinePass
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more