Interprocedural Control Flow Analysis of First-Order Programs with Tail-Call Optimization

9Citations
Citations of this article
10Readers
Mendeley users who have this article in their library.

Abstract

Knowledge of low-level control flow is essential for many compiler optimizations. In systems with tail-call optimization, the determination of interprocedural control flow is complicated by the fact that because of tail-call optimization, control flow at procedure returns is not readily evident from the call graph of the program. This article shows how interprocedural control-flow analysis of first-order programs can be carried out using well-known concepts from parsing theory. In particular, we show that context-insensitive (or zeroth-order) control-flow analysis corresponds to the notion of FOLLOW sets in context-free grammars, while context-sensitive (or first-order) control-flow analysis corresponds to the notion of LR(1) items. The control-flow information so obtained can be used to improve the precision of interprocedural dataflow analyses as well as to extend certain low-level code optimizations across procedure boundaries.

Cite

CITATION STYLE

APA

Debray, S. K., & Proebsting, T. A. (1997). Interprocedural Control Flow Analysis of First-Order Programs with Tail-Call Optimization. ACM Transactions on Programming Languages and Systems, 19(4), 568–585. https://doi.org/10.1145/262004.262006

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free