pub fn fold_constants(expr: &TLExpr) -> (TLExpr, ConstantFoldingStats)Expand description
Optimize an expression by folding constant subexpressions.
This pass evaluates constant expressions at compile time, replacing them with their computed values. This can significantly reduce runtime computation for expressions involving constants.
ยงExamples
use tensorlogic_compiler::optimize::fold_constants;
use tensorlogic_ir::TLExpr;
// 2.0 + 3.0 => 5.0
let expr = TLExpr::Add(
Box::new(TLExpr::Constant(2.0)),
Box::new(TLExpr::Constant(3.0)),
);
let (optimized, stats) = fold_constants(&expr);
assert!(matches!(optimized, TLExpr::Constant(5.0)));
assert_eq!(stats.binary_ops_folded, 1);