pub struct CompilerPipeline { /* private fields */ }Expand description
The main compiler pipeline.
Orchestrates the transformation from kernel expressions through LCNF optimization to backend code generation.
Implementations§
Source§impl CompilerPipeline
impl CompilerPipeline
Sourcepub fn new(config: PipelineConfig) -> Self
pub fn new(config: PipelineConfig) -> Self
Create a new pipeline with the given configuration.
Sourcepub fn default_pipeline() -> Self
pub fn default_pipeline() -> Self
Create a pipeline with default (O1) configuration.
Sourcepub fn run_pipeline(
&self,
input: Vec<(Name, Expr, Expr)>,
config: &PipelineConfig,
) -> PipelineResult
pub fn run_pipeline( &self, input: Vec<(Name, Expr, Expr)>, config: &PipelineConfig, ) -> PipelineResult
Run the complete pipeline on a set of declarations.
Input: list of (name, type, value) triples from the kernel. Output: PipelineResult with generated code and statistics.
Sourcepub fn iterate_to_fixpoint(
&self,
module: LcnfModule,
passes: &[PassId],
max_iters: usize,
stats: &mut PipelineStats,
) -> LcnfModule
pub fn iterate_to_fixpoint( &self, module: LcnfModule, passes: &[PassId], max_iters: usize, stats: &mut PipelineStats, ) -> LcnfModule
Run optimization passes in a fixed-point loop until convergence.
Sourcepub fn run_pass(&self, module: &LcnfModule, pass_id: &PassId) -> PassResult
pub fn run_pass(&self, module: &LcnfModule, pass_id: &PassId) -> PassResult
Run a single optimization pass on the module.
Auto Trait Implementations§
impl Freeze for CompilerPipeline
impl RefUnwindSafe for CompilerPipeline
impl Send for CompilerPipeline
impl Sync for CompilerPipeline
impl Unpin for CompilerPipeline
impl UnsafeUnpin for CompilerPipeline
impl UnwindSafe for CompilerPipeline
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