Concurrent Data-flow Analysis

The Static Single Assignment (SSA) form of programs is a popular intermediate representation of sequential programs that is widely used in optimizing compilers. A more general version of this form, called the Sparse Data-flow Evaluator Graph (SDEG) can be used to solve many data-flow problems efficiently. Both the SSA form and the SDEG can be computed very efficiently using the optimal solution to the Roman Chariots Problem given by Bilardi and Pingali.

One limitation of the traditional formulation of SSA is that it only models sequential programs. Programs with explicit parallelism (e.g., Java, which has thread), cannot be safely modeled with this formulation.

Some work has been done on what is called Concurrent SSA. However, the particular formulation of Concurrent SSA found in the referenced paper does not incorporate the ideas from SDEG's or the optimal algorithm for computing SSA.

The goal of this project is to merge all of these threads of research into a new Concurrent SDEG representation, which

Also, you must,

References

You can find some relevant papers here.


Paul Stodghill
Last modified: Mon Feb 8 21:36:47 EST 1999