Skip to main content

Module dataflow

Module dataflow 

Source
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§

DataflowAnalysis
Result of dataflow analysis on an expression.
DataflowConfig
Configuration for dataflow analysis.
GraphDataflow
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.