We consider parallel programs with shared memory and interleaving semantics, for which we show how to construct for unidirectional bitvector problems optimal analysis algorithms that are as efficient as their purely sequential counterparts and that can easily be implemented. Whereas the complexity result is rather obvious, our optimality result is a consequence of a new Kam/Ullmanstyle Coincidence Theorem. Thus using our method, the standard algorithms for sequential programs computing liveness, availability, very busyness, reaching definitions, definition-use chains, or the analyses for performing code motion, assignment motion, partial dead-code elimination or strength reduction, can straightforward be transferred to the parallel setting at almost no cost.
Other examples of parallel program analysis include an optimal bit vector analysis REF for explicit parallel programs that allows to compute reaching definition, definition-use chains, or analysis for code motion.
Parallelism for free: efficient and optimal bitvector analyses for parallel programs
TOPL
Computer Science