MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Extended SSA numbering: Introducing SSA properties to languages with multi-level pointers (1998) [15 citations — 2 self]

Download:
Download as a PDF | Download as a PS
by Christopher Lapkowski, Laurie J. Hendren
ACAPS Tech. Memo 102, Sch. of Comp. Sci., McGill U
ftp://ftp.capsl.udel.edu/pub/doc/acaps/memos/memo102.ps.gz
Add To MetaCart

Abstract:

Static Single Assignment (SSA) intermediate representations have become quite popular in compiler development. One advantage of the SSA form is that each use of a variable corresponds to exactly one definition, and thus two references of the same SSA variable must denote the same value. To date, most SSA forms concentrate on scalar variables, and it is difficult to extend these intermediate representations to languages with multi-level pointers like C. Translating a program into SSA form requires two steps. The first is inserting OE-nodes that join values from different flow of control paths, and the other renames variables such that each name has exactly one definition. When designing SSA forms to handle pointers, the insertion of OE-nodes is quite difficult. Thus, we propose a method that concentrates on the second step, in that we associate an SSA number to each variable reference, including references via pointers. Even without OE-nodes, we retain some of the properties of SSA such as "one value per name " when the SSA number is used as part of the name. In addition to a primary SSA number for scalar variables we introduce a secondary SSA

Citations

639 Efficiently Computing Static Single Assignment Form and the Control Dependence Graph – Cytron, Ferrante, et al. - 1991
329 Context-sensitive interprocedural points-to analysis in the presence of function pointers – Enami, Ghiya, et al. - 1994
188 An efficient method of computing static single assignment form – CYTRON, FERRANTE, et al. - 1989
187 Detecting equality of variables in programs – Alpern, Wegman, et al. - 1988
156 Global value numbers and redundant computations – Rosen, Wegman, et al. - 1988
83 Beyond induction variables – Wolfe - 1992
82 Putting pointer analysis to work – Ghiya, Hendren - 1998
65 Connection analysis: A practical interprocedural heap analysis for C – Ghiya, Hendren - 1995
40 Taming Control Flow: A Structured Approach to Eliminating GOTO Statements – Erosa, Hendren - 1994
40 Designing the mccat compiler based on a family of structured intermediate representations – Hendren, Donawa, et al. - 1992
23 Efficiently accommodating may-alias information in ssa form – Cytron, Gershbein - 1993
22 A linear time algorithm for placing OE-nodes – Sreedhar, Gao - 1995
19 and Hanspeter Mössenböck. Single-pass generation of static single-assignment form for structured languages – Brandis - 1994
10 Practical techniques for interprocedural heap analysis – Ghiya - 1995
6 Single-Pass Generation of Static SingleAssignment Form for Structured Languages – Brandis, Mossenbock - 1994
5 Supporting array dependence testing for an optimizing /parallelizing C compiler – Justiani, Hendren - 1994
5 A practical symbolic array dependence analysis framework for c – Lapkowski - 1997
2 Erosa. A goto-elimination method and its implementation for the McCAT C compiler – Marie - 1995
2 A goto-elimination method and its implementation for the McCAT C compiler. Master's thesis, McGill U – Erosa - 1995
1 on Languages and Compilers for Parallel Computing, number 757 – Hendren - 1992
1 In ftp://ftpacaps. cs.mcgill.ca/pub/doc/memos. [12 – Sci, McGill, et al. - 1996
1 13] Vugranam C. Sreedhar and Guang – Gao - 1988