Proceedings Article10.1145/301618.301667
Static single assignment form for machine code
Allen Leung,Lal George +1 more
- 01 May 1999
- Vol. 34, Iss: 5, pp 204-214
35
TL;DR: By resolving all mismatches between the two representations in separate phases, this work is able to utilize existing SSA algorithms unaltered to perform machine code optimizations.
read more
Abstract: Static Single Assignment (SSA) is an effective intermediate representation in optimizing compilers. However, traditional SSA form and optimizations are not applicable to programs represented as native machine instructions because the use of dedicated registers imposed by calling conventions, the runtime system, and target architecture must be made explicit. We present a simple scheme for converting between programs in machine code and in SSA, such that references to dedicated physical registers in machine code are preserved. Our scheme ignores all output- and anti-dependences imposed by physical registers while a program is in SSA form, but inserts compensation code during machine code reconstruction if any naming requirements have been violated. By resolving all mismatches between the two representations in separate phases, we are able to utilize existing SSA algorithms unaltered to perform machine code optimizations.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Register allocation: what does the NP-completeness proof of Chaitin et al. really prove? or revisiting register allocation: why and how
Florent Bouchez,Alain Darte,Christophe Guillon,Fabrice Rastello +3 more
- 02 Nov 2006
TL;DR: It is shown that, in general, it is easy to decide if temporary variables can be assigned to k registers or if some spilling is necessary, and the real complexity does not come from the coloring itself but from critical edges and from the optimizations of spilling and coalescing.
On the Complexity of Register Coalescing
Florent Bouchez,Alain Darte,Fabrice Rastello +2 more
- 11 Mar 2007
TL;DR: This paper is devoted to the complexity of the coalescing phase, in particular in the light of recent developments on the SSA form, and almost completely classify the NP-completeness of these problems, discussing also on the structure of the interference graph.
Static Program Analysis based on Virtual Register Renaming
Jeremy Singer
- 01 Jan 2006
TL;DR: This dissertation develops the principles, properties, and practice of SSI construction and data flow analysis and identifies the family of VRRSs, which are all CFGs with different virtual register naming conventions.
Register allocation after classical SSA elimination is NP-Complete
Fernando Magno Quintão Pereira,Jens Palsberg +1 more
- 25 Mar 2006
TL;DR: It is shown that the answer is no, unless P = NP: register allocation after classical SSA elimination is NP-complete, which means Chaitin's proof technique does not work for programs after classicalSSA elimination; instead a reduction from the graph coloring problem for circular arc graphs is used.
Fast liveness checking for ssa-form programs
Benoit Boissinot,Sebastian Hack,Daniel Grund,Benoît Dupont de Dine hin,Fabri e Rastello +4 more
- 06 Apr 2008
TL;DR: A method to check liveness of variables that overcomes both obstacles and is faster and consumes less memory than conventional data-flow approaches, and heavily makes use of SSA-form properties.
References
•Book
Compiling with continuations
Andrew W. Appel
- 29 Nov 1991
TL;DR: In this article, the authors show how continuation-passing style is used as an intermediate representation to perform optimizations and program transformations for modern languages like ML, and show how concepts from the theory of programming languages can be applied to the production of practical optimizing compilers.
Constant propagation with conditional branches
Mark N. Wegman,F. Kenneth Zadeck +1 more
TL;DR: Four algorithms, all conservitive in the sense that all constants may not be found, but each constant found is constant over all possible executions of the program, are presented.
Global value numbers and redundant computations
Barry K. Rosen,Mark N. Wegman,F. K. Zadeck +2 more
- 13 Jan 1988
TL;DR: This work proposes a redundancy elimination algorithm that is global (in that it deals with the entire program), yet able to recognize redundancy among expressions that are lexitally different, and takes advantage of second order effects.
573
An efficient method of computing static single assignment form
Ron Cytron,Jeanne Ferrante,Barry K. Rosen,Mark N. Wegman,F. K. Zadeck +4 more
- 03 Jan 1989
TL;DR: This paper presents strong evidence that static single assignment form and the control dependence graph can be of practical use in optimization, and presents a new algorithm that efficiently computes these data structures for arbitrary control flow graph.
Automatic construction of sparse data flow evaluation graphs
Jong-Deok Choi,Ron Cytron,Jeanne Ferrante +2 more
- 03 Jan 1991
TL;DR: An algorithm that constructs sparse evaluation graphs for forward or backward monotone data flow problems to err joy the advantages of solutions based on Static Single Assignment (SSA) form is presented.
223
Related Papers (5)
Fernando Magno Quintão Pereira,Jens Palsberg +1 more
- 02 Nov 2005
Andrew W. Appel,Jens Palsberg +1 more
- 01 Jan 1997