neo_solidity/
optimizer.rs

1//! Yul AST Optimizer Module
2//!
3//! Performs optimization passes on the Yul AST to improve code quality and
4//! reduce bytecode size.
5//!
6//! # Optimization Levels
7//!
8//! - **Level 0**: No optimization
9//! - **Level 1**: Constant folding only
10//! - **Level 2**: Constant folding + dead code elimination
11//! - **Level 3**: All optimizations including function inlining
12//!
13//! # Optimization Passes
14//!
15//! - [`Optimizer::constant_folding`] - Evaluates constant expressions at compile time
16//! - [`Optimizer::dead_code_elimination`] - Removes unreachable code after returns
17//! - [`Optimizer::function_inlining`] - Inlines small functions to reduce call overhead
18
19use crate::error::CompilerError;
20use crate::parser::{AstNode, AstNodeType};
21use std::collections::HashMap;
22
23include!("optimizer/types.rs");
24include!("optimizer/dispatch.rs");
25include!("optimizer/constant_folding.rs");
26include!("optimizer/dead_code.rs");
27include!("optimizer/inlining.rs");