Algorithms and data structures for control dependence and related compiler problems

N/ACitations
Citations of this article
2Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The control dependence relation plays a fundamental role in program restructuring and optimization. It is used in many phases of modern compilers, such as dataflow analysis, loop transformations, and code scheduling. This talk will survey recent results concerning the efficient computation of control dependence information for a given program The concrete application of these results to the problem of obtaining the static single assignment form for a program will be discussed. Finally, a framework will be outlined that generalizes the classical notion of control dependence to include other interesting variants.The talk is largely based on joint work with Keshav Pingali [1, 2, 3, 4]. Technically, control dependence is a relation between nodes and edges of the control flow graph (CFG) of a program, a directed graph in which nodes represent statements, and an edge u → v represents possible flow of control from u to v. A node w ∈ V is said to be control dependent on edge (u → v)∈ E if w postdominates v, and if w ≠ u, then w does not postdominate u. Several applications of control dependence require the computation of sets of the following type cd(e), which is the set of statements control dependent on control-flow edge e; conds(w), which is the set of edges on which statement w is dependent, and cdequiv(w), which is the set of statements having the same control dependences as w. A novel data structure is introduced, the augmented postdominator tree (APT), which can be constructed in space and time proportional to the size of the program, and which supports enumeration of the above mentioned control-dependence sets in time proportional to their size. Hence, APT provides an optimal representation of control dependence. By exploiting the well known relation between control dependence and dominance frontiers, the APT is used to develop an algorithm for the single static assignment form of a program, which takes linear time per variable. Finally, a notion of generalized dominance is introduced, based on a parametric set of paths in the control flow graph. This new definition leads to a generalized notion of control dependence, which includes standard control dependence and weak control dependence as special cases. To illustrate the utility of the framework, it is shown how the APT can be used for the optimal com putation of weak control dependence sets.

Cite

CITATION STYLE

APA

Bilardi, G. (1997). Algorithms and data structures for control dependence and related compiler problems. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1203, pp. 1–2). Springer Verlag. https://doi.org/10.1007/3-540-62592-5_55

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