SSA without Dominance for Higher-Order Programs
Roland Leißa, Johannes Griebler
摘要
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.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了最后一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
它引用的顶会 Paper3
- SSA Translation Is an Abstract InterpretationMatthieu LemerrePOPL 2023 · 被引用 7 次
- Asymptotically Better Query Optimization Using Indexed AlgebraPhilipp Fent, Guido Moerkotte, Thomas NeumannVLDB 2023 · 被引用 5 次
- MimIR: An Extensible and Type-Safe Intermediate Representation for the DSL AgeRoland Leißa, Marcel Ullrich, Joachim Meyer, Sebastian HackPOPL 2025 · 被引用 1 次
相关 Paper
- Compiling with Abstract InterpretationDorian Lesbre, Matthieu LemerrePLDI 2024 · 被引用 6 次
- 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 次
- Graph IRs for Impure Higher-Order Languages: Making Aggressive Optimizations Affordable with Precise Effect DependenciesOliver Bracevac, Guannan Wei, Songlin Jia, Supun Abeysinghe 等OOPSLA 2023 · 被引用 14 次
- Webs and Flow-Directed Well-Typedness Preserving Program TransformationsBenjamin Quiring, David Van Horn, John H. Reppy, Olin ShiversPLDI 2025 · 被引用 2 次
