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.
Wed 17 JunDisplayed time zone: Mountain Time (US & Canada) change
14:00 - 15:40 | Static Analysis 1PLDI Research Papers at Flatirons 4 Chair(s): Milijana Surbatovich University of Maryland at College Park | ||
14:00 20mTalk | Flow-Analysis-Based Closure Optimization PLDI Research Papers John Reppy University of Chicago, Olin Shivers Northeastern University, Byron Zhong University of Chicago DOI Pre-print | ||
14:20 20mTalk | SSA without Dominance for Higher-Order Programs PLDI Research Papers DOI Pre-print | ||
14:40 20mTalk | Analyzing Bytes: Pre-Disassembly Static Binary Analysis PLDI Research Papers Huan Nguyen Google, Soumyakant Priyadarshan Stony Brook University, Chencheng Jiang Stony Brook University, R. Sekar Stony Brook University DOI | ||
15:00 20mTalk | Exploiting Sophisticated Static Analysis for Verilog PLDI Research Papers Qinlin Chen Nanjing University, Nairen Zhang Nanjing University, Jinpeng Wang Nanjing University, Jiacai Cui Nanjing University, Tian Tan Nanjing University, Xiaoxing Ma Nanjing University, Chang Xu Nanjing University, Jian Lu Nanjing University, Yue Li Nanjing University DOI | ||