ACM Home Page
Please provide us with feedback. Feedback
Static single assignment form for machine code
Full text PdfPdf (1.31 MB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation table of contents
Atlanta, Georgia, United States
Pages: 204 - 214  
Year of Publication: 1999
ISBN:1-58113-094-5
Also published in ...
Authors
Allen Leung  New York University, 251 Mercer St., New York, NY
Lal George  Bell Laboratories, 600-700 Mountain Ave., Murray Hill, NJ
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 51,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/301618.301667
What is a DOI?

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
CCK+97
 
CCL+96
CFR+89
 
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
MJ92
RWZ88
SG95
WCES94
 
Wol96
WZ91

CITED BY  8