Skip to main content

fold_constants

Function fold_constants 

Source
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);