A framework for generalized control dependence

  title={A framework for generalized control dependence},
  author={Gianfranco Bilardi and Keshav Pingali},
  booktitle={ACM-SIGPLAN Symposium on Programming Language Design and Implementation},
  • G. BilardiK. Pingali
  • Published in
    ACM-SIGPLAN Symposium on…
    1 May 1996
  • Computer Science, Mathematics
We generalize the notion of dominance by defining a generalized dominance relation with respect to a set of paths in the control flow graph G = (V, E). This new definition leads to a generalized notion of control dependence, which includes standard control dependence and weak control dependence as special cases.If the set of paths underlying a generalized dominance relation satisfies some natural closure conditions, that dominance relation is tree-structured. Given this tree, the corresponding… 

Figures from this paper

Optimal control dependence computation and the Roman chariots problem

The augmented postdominator tree (APT) is introduced, a data structure which can be constructed in space and time proportional to the size of the program and which supports enumeration of a number of useful control dependence sets inTime proportional to their size.

Parametric and Termination-Sensitive Control Dependence - Extended Abstract

A parametric approach to control dependence is presented, where the parameter is any prefix-invariant property on paths in the control-flow graph (CFG), and a novel control dependence relation, called termination-sensitive control dependence, is obtained also as an instance of the parametric framework.

Generalising Control Dependence

Weak and strong projection, properties which capture the underlying semantics of control dependence, are dened. Weak and strong commitment-closedness, generalisations of non{termination sensitive and

Efficient Computation of Interprocedural Control Dependence

This paper presents two efficient, conceptually simple algorithms for computing the interprocedural postdominance relation that can be used to compute interprocesural control dependence and one of them can be tuned to scale better to larger programs.

A new foundation for control dependence and slicing for modern program structures

To provide a foundation for slicing reactive systems, the article proposes a notion of slicing correctness based on weak bisimulation, and proves that some of these new definitions of control dependence generate slices that conform to this notion of correctness.

Static Backward Slicing of Non-deterministic Programs and Systems

It is proved that if a subset of the vertices of an NDPG is both data dependence closed and (weak/strong) commitment closed, then the resulting induced graph will, indeed, satisfy structural and semantic requirements.

Fast Computation of Strong Control Dependencies

New algorithms for computing non-termination sensitive control dependence (NTSCD) and decisive order dependence (DOD) have many applications including program slicing and compiler optimizations and are asymptotically faster than the current algorithms.

The Static Single Assignment Form and its Computation

This paper gives a systematic presentation of known properties of the SSA form, and gives a simple framework in which all existing SSA algorithms can be placed and compared, and invent two new-placement algorithms which require asymptotically linear running time.

Algorithms for computing the static single assignment form

This article proposes a framework within which properties of the SSA form and φ-placement algorithms are derived, based on a new relation called merge which captures succinctly the structure of a program's control flow graph that is relevant to its SSAform.



The program dependence graph and its use in optimization

An intermediate program representation, called the program dependence graph (PDG), that makes explicit both the data and control dependences for each operation in a program, allowing transformations to be triggered by one another and applied only to affected dependences.

APT: a data structure for optimal control dependence computation

A data structure called the augmented post-dominator tree (APT) is introduced which is constructed in space and time proportional to the size of the program, and which can answer control dependence queries in time proportionally to thesize of the output.

A linear algorithm for finding dominators in flow graphs and related problems

  • D. Harel
  • Computer Science, Mathematics
    STOC '85
  • 1985
The notions of pseudo and external dominators which are both computable in linear time are introduced and made applicable for finding immediate dominators and an algorithm for a limited class of graphs which includes cycle free graphs is given which can be used to find dominators in reducible flow graphs.

A linear time algorithm for placing φ-nodes

This paper employs a novel program representation—the DJ graph—by augmenting the dominator tree of a flowgraph with edges which may lead to a potential “merge” of dataflow information.

Compact representations for control dependence

The control dependence aspect of the PDG is examined, which summarizes essential control flow relationships in a program, and the space and time required to compute those aspects of control dependence used by m9st algorithms are improved.

Efficiently computing static single assignment form and the control dependence graph

New algorithms that efficiently compute static single assignment form and control dependence graph data structures for arbitrary control flow graphs are presented and it is given that all of these data structures are usually linear in the size of the original program.

The transitive closure of control dependence: the iterated join

The transitive closure of the control dependence relation is characterized and an application to the theory of control fow guards is given and related to characterizations by Beck, Sarkar, and Cytron.

Fast Algorithms for Finding Nearest Common Ancestors

An algorithm for a random access machine with uniform cost measure (and a bound of $\Omega (\log n)$ on the number of bits per word) that requires time per query and preprocessing time is presented, assuming that the collection of trees is static.

Depth-First Search and Linear Graph Algorithms

The value of depth-first search or “backtracking” as a technique for solving problems is illustrated by two examples. An improved version of an algorithm for finding the strongly connected components

A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance

A formal, general model of program dependences is presented and used to evaluate several dependence-based software testing, debugging, and maintenance techniques. Two generalizations of control and