lambdust 0.1.1

A Scheme dialect with gradual typing and effect systems
//! Configuration for bytecode optimizations.

/// Configuration for bytecode optimizations.
#[derive(Debug, Clone)]
pub struct OptimizationConfig {
    /// Enable constant folding
    pub constant_folding: bool,
    /// Enable dead code elimination
    pub dead_code_elimination: bool,
    /// Enable tail call optimization
    pub tail_call_optimization: bool,
    /// Enable instruction combining
    pub instruction_combining: bool,
    /// Enable register allocation optimization
    pub register_allocation: bool,
    /// Maximum number of optimization passes
    pub max_passes: usize,
}

impl Default for OptimizationConfig {
    fn default() -> Self {
        Self {
            constant_folding: true,
            dead_code_elimination: true,
            tail_call_optimization: true,
            instruction_combining: true,
            register_allocation: false, // More complex, disabled by default
            max_passes: 3,
        }
    }
}