Sciweavers

POPL
2016
ACM

Pushdown control-flow analysis for free

8 years 8 months ago
Pushdown control-flow analysis for free
Traditional control-flow analysis (CFA) for higher-order languages introduces spurious connections between callers and callees, and different invocations of a function may pollute each other’s return flows. Recently, three distinct approaches have been published that provide perfect call-stack precision in a computable manner: CFA2, PDCFA, and AAC. Unfortunately, implementing CFA2 and PDCFA requires significant engineering effort. Furthermore, all three are computationally expensive. For a monovariant analysis, CFA2 is in O(2n ), PDCFA is in O(n6 ), and AAC is in O(n8 ). In this paper, we describe a new technique that builds on these but is both straightforward to implement and computationally inexpensive. The crucial insight is an unusual state-dependent allocation strategy for the addresses of continuations. Our technique imposes only a constant-factor overhead on the underlying analysis and costs only O(n3 ) in the monovariant case. We present the intuitions behind this develo...
Thomas Gilray, Steven Lyde, Michael D. Adams 0001,
Added 09 Apr 2016
Updated 09 Apr 2016
Type Journal
Year 2016
Where POPL
Authors Thomas Gilray, Steven Lyde, Michael D. Adams 0001, Matthew Might, David Van Horn
Comments (0)