|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
AM91a
|
A. Appel and D. MacQueen. Standard ML of New Jersey. Third Int'l Syrup. on Prog. Lang. Implementation and Logic Programming, 1991.
|
| |
AM91b
|
Andrew W. Appel and David B. MacQueen. Standard ML of NewJersey. In Martin Wirsing, editor, Third Int'l Syrup. on Prog. Lang. Implementation and Logic Programming, New York, August 1991. Springer-Verlag.
|
| |
App92
|
|
| |
BCHS88
|
|
 |
BL93
|
|
 |
CCF91
|
Jong-Deok Choi , Ron Cytron , Jeanne Ferrante, Automatic construction of sparse data flow evaluation graphs, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.55-66, January 21-23, 1991, Orlando, Florida, United States
[doi> 10.1145/99583.99594]
|
 |
CCK+97
|
Fred Chow , Sun Chan , Robert Kennedy , Shin-Ming Liu , Raymond Lo , Peng Tu, A new algorithm for partial redundancy elimination based on SSA form, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.273-286, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
CCL+96
|
|
 |
CFR+89
|
R. Cytron , J. Ferrante , B. K. Rosen , M. N. Wegman , F. K. Zadeck, An efficient method of computing static single assignment form, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.25-35, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75280]
|
| |
CKB93
|
Philip L. Campbell, Ksheerabdhi Krishna, and Robert A. Ballance. Refining and defming the program dependence web. Technical Report CS93-6, University of New Mexico, Albuquerque, March 1993.
|
 |
Cli95
|
|
| |
CS95
|
Keith Cooper and Taylor Simpson. SCC-based value numbering. Technical Report CRPC- TR95636-S, Center for Research on Parallel Computation, Rice University, October 1995.
|
| |
CSV95
|
Keith Cooper, Taylor Simpson, and Christopher A. Vick. Operator strength reduction. Technical Report CRPC-TR95635-S, Center for Research on Parallel Computation, Rice University, October 1995.
|
 |
GA96
|
|
| |
Geo97
|
Lal George. Mlrisc: Customizable and reusable code generators (http://cm. bell-labs, com/cm/c s/ what/smlnj/doc/mlrisc/index, html). Technical report, Bell Laboratories, Murray Hill, 1997.
|
| |
Hew94
|
Hewlett Packard. PA-RISC 1.1 Architecture and Instruction Set, 3rd Edition, 1994.
|
| |
HMM86
|
Robert Harper, David MacQueen, and Robin Milner. Standard ML. Report ECS-LFCS-86- 2, Laboratory for Foundations of Computer Science, Computer Science Department, Edinburgh University, 1986.
|
 |
KRS94
|
Jens Knoop , Oliver Rüthing , Bernhard Steffen, Partial dead code elimination, Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, p.147-158, June 20-24, 1994, Orlando, Florida, United States
|
 |
MJ92
|
|
 |
RWZ88
|
B. K. Rosen , M. N. Wegman , F. K. Zadeck, Global value numbers and redundant computations, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-27, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73562]
|
 |
SG95
|
|
 |
WCES94
|
Daniel Weise , Roger F. Crew , Michael Ernst , Bjarne Steensgaard, Value dependence graphs: representation without taxation, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.297-310, January 16-19, 1994, Portland, Oregon, United States
[doi> 10.1145/174675.177907]
|
| |
Wol96
|
|
 |
WZ91
|
|
CITED BY 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Benoit Boissinot , Sebastian Hack , Daniel Grund , Benoît Dupont de Dine hin , Fabri e Rastello, Fast liveness checking for ssa-form programs, Proceedings of the sixth annual IEEE/ACM international symposium on Code generation and optimization, April 05-09, 2008, Boston, MA, USA
|
|
|
|
|
|
Benoit Boissinot , Alain Darte , Fabrice Rastello , Benoit Dupont de Dinechin , Christophe Guillon, Revisiting Out-of-SSA Translation for Correctness, Code Quality and Efficiency, Proceedings of the 2009 International Symposium on Code Generation and Optimization, p.114-125, March 22-25, 2009
|
|