Matrix multiplication via arithmetic progressions
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
An efficient method of computing static single assignment form
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Direct transitive closure algorithms: design and performance evaluation
ACM Transactions on Database Systems (TODS)
The input/output complexity of transitive closure
SIGMOD '90 Proceedings of the 1990 ACM SIGMOD international conference on Management of data
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
On computing the transitive closure of a state transition relation
DAC '93 Proceedings of the 30th international Design Automation Conference
Single-pass generation of static single-assignment form for structured languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A linear time algorithm for placing &phgr;-nodes
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modern compiler implementation in Java
Modern compiler implementation in Java
Advanced compiler design and implementation
Advanced compiler design and implementation
A new, simpler linear-time dominators algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIAM Journal on Computing
A fast algorithm for finding dominators in a flowgraph
ACM Transactions on Programming Languages and Systems (TOPLAS)
A modification of Warshall's algorithm for the transitive closure of binary relations
Communications of the ACM
Immediate predominators in a directed graph [H]
Communications of the ACM
On loops, dominators, and dominance frontiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the Computation of the Transitive Closure of Relational Operators
VLDB '86 Proceedings of the 12th International Conference on Very Large Data Bases
Efficient Transitive Closure Algorithms
VLDB '88 Proceedings of the 14th International Conference on Very Large Data Bases
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Finding dominators revisited: extended abstract
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
A note on the transitive closure of a boolean matrix
ACM SIGACT News
Engineering A Compiler
An embedded systems programming environment for c
Euro-Par'06 Proceedings of the 12th international conference on Parallel Processing
Hi-index | 0.00 |
Static Single-Assignment (SSA) form is an efficient intermediate representation used in virtual machines and modern compilers. It provides data flow information that simplifies the implementation of standard program optimisations such as constant propagation, dead code elimination, and partial redundancy elimination. Constructing SSA form involves the computation of graph relations such as dominance, and non-iterated and iterated dominance frontier. Although there exist efficient graph algorithms for these relations, the algorithms are elaborate to implement. In this paper we introduce a new approach to compute the dominance relation, the dominance frontiers, and the iterated dominance frontiers based on Boolean matrix calculus. We implemented our approach in an optimising backend for LCC bytecode and compared its performance with the state-of-the-art approaches. We use the Spec95 benchmark suite for our experimental evaluation.