Tag
dataflow-analysis
- Jun 3, 2026 Monotone Dataflow: Lattices, Transfer Functions, and Fixpoints The worklist formulation behind liveness, reaching definitions, and constant propagation, why monotonicity guarantees termination, and where the abstraction loses precision. developer tools
- May 27, 2026 Reaching Definitions and the Monotone Dataflow Framework How a compiler computes which assignments can reach each program point, why the answer is a least fixpoint over a lattice, and where the bitvector approximation stops being exact. compilers
- May 15, 2026 SSA Construction and the Cost of Phi Placement Dominance frontiers decide where phi nodes belong, minimal SSA places too many of them, and pruning by liveness is what keeps the form small enough to optimize. compilers
- Feb 3, 2026 Borrow Checking as a Dataflow Analysis Over Places How a lifetime check becomes a liveness problem on a control-flow graph, why non-lexical lifetimes removed a class of false errors, and where the analysis still gives up. programming languages
- Sep 6, 2025 Definite Assignment as a Flow-Sensitive Dataflow Problem How a checker proves every variable is written before it is read, why the answer depends on control flow rather than scope, and how the lattice and transfer functions are chosen. compilers
- Jul 16, 2025 Live-Variable Analysis and the Backward Direction of Dataflow Liveness runs the dataflow equations against the edges, from uses back to definitions, and the difference between may-liveness and must-liveness decides which optimizations are legal. compilers
- Dec 12, 2024 Minimal SSA Construction from Dominance Frontiers How the Cytron placement algorithm decides where phi functions belong using dominance frontiers, and why placing them minimally changes what later passes can assume. compilers
- Nov 27, 2023 Dominator Trees and the Cooper-Harvey-Kennedy Iterative Method What it means for one vertex to dominate another, why the immediate dominator relation forms a tree, and how reverse post-order makes the iterative fixpoint converge quickly. algorithms
- Jul 4, 2022 Sparse Conditional Constant Propagation Across the SSA Graph How SCCP combines constant propagation with reachability so that unreachable branches stop contributing values, and why the sparse formulation converges faster than a dense lattice iteration. compilers
- Dec 8, 2021 Live Ranges as the Input to Register Allocation How backward liveness analysis turns a control-flow graph into the per-value program points that every allocator reasons over, and where that abstraction stops being exact. compilers