SSA without Dominance for Higher-Order Programs
Roland Leißa, Johannes Griebler
Abstract
Dominance is a fundamental concept in compilers based on static single assignment (SSA) form. It underpins a wide range of analyses and transformations and defines a core property of SSA: every use must be dominated by its definition. We argue that this reliance on dominance has become increasingly problematic—both in terms of precision and applicability to modern higher-order languages. First, control flow overapproximates data flow, which makes dominance-based analyses inherently imprecise. Second, dominance is well-defined only for first-order control-flow graphs (CFGs). More critically, higher-order programs violate the assumptions underlying SSA and classic CFGs: without an explicit CFG, the very notion that all uses of a variable must be dominated by its definition loses meaning. We propose an alternative foundation based on free variables. In this view, ϕ -functions and function parameters directly express data dependencies, enabling analyses traditionally built on dominance while improving precision and naturally extending to higher-order programs. We further present an efficient technique for maintaining free-variable sets in a mutable intermediate representation (IR). For analyses requiring additional structure, we introduce the nesting tree —a relaxed analogue of the dominator tree constructed from variable dependencies rather than control flow. Our benchmarks demonstrate that the algorithms and data structures presented in this paper scale log-linearly with program size in practice.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext fd558301-7dfa-46c5-bb5f-3cf030aaab97Builds on3
- SSA Translation Is an Abstract InterpretationMatthieu LemerrePOPL 2023 · 7 citations
- Asymptotically Better Query Optimization Using Indexed AlgebraPhilipp Fent, Guido Moerkotte, Thomas NeumannVLDB 2023 · 5 citations
- MimIR: An Extensible and Type-Safe Intermediate Representation for the DSL AgeRoland Leißa, Marcel Ullrich, Joachim Meyer, Sebastian HackPOPL 2025 · 1 citation
Related papers
- Compiling with Abstract InterpretationDorian Lesbre, Matthieu LemerrePLDI 2024 · 6 citations
- Differentially-Private Control-Flow Node Coverage for Software Usage AnalysisHailong Zhang, Sufian Latif, Raef Bassily, Atanas RountevUSENIX Security 2020
- Flow-Analysis-Based Closure OptimizationJohn H. Reppy, Olin Shivers, Byron ZhongPLDI 2026 · 1 citation
- Graph IRs for Impure Higher-Order Languages: Making Aggressive Optimizations Affordable with Precise Effect DependenciesOliver Bracevac, Guannan Wei, Songlin Jia, Supun Abeysinghe et al.OOPSLA 2023 · 14 citations
- Webs and Flow-Directed Well-Typedness Preserving Program TransformationsBenjamin Quiring, David Van Horn, John H. Reppy, Olin ShiversPLDI 2025 · 2 citations
