Expand description
Dataflow analysis for logical expressions and einsum graphs.
This module provides dataflow analysis passes that track how data flows through expressions and computation graphs. These analyses enable powerful optimizations and help identify opportunities for parallelization.
§Overview
Dataflow analysis is a fundamental compiler technique that tracks:
- Reaching definitions: Which variable assignments reach each point
- Live variables: Which variables are used after each point
- Available expressions: Which expressions have been computed
- Use-def chains: Relationships between variable uses and definitions
§Applications
- Dead code elimination
- Common subexpression elimination
- Register allocation
- Constant propagation
- Loop optimization
§Examples
use tensorlogic_compiler::passes::analyze_dataflow;
use tensorlogic_ir::{TLExpr, Term};
let expr = TLExpr::and(
TLExpr::pred("P", vec![Term::var("x")]),
TLExpr::pred("Q", vec![Term::var("x")]),
);
let analysis = analyze_dataflow(&expr);
println!("Live variables: {:?}", analysis.live_variables);Structs§
- Dataflow
Analysis - Result of dataflow analysis on an expression.
- Dataflow
Config - Configuration for dataflow analysis.
- Graph
Dataflow - Dataflow analysis for einsum graphs.
Functions§
- analyze_
dataflow - Perform dataflow analysis on a logical expression.
- analyze_
dataflow_ with_ config - Perform dataflow analysis with custom configuration.
- analyze_
graph_ dataflow - Analyze dataflow in an einsum graph.