Abstract:
. This paper addresses the problems of representing aliases and indirect memory operations in SSA form. We propose a method that prevents explosion in the number of SSA variable versions in the presence of aliases. We also present a technique that allows indirect memory operations to be globally commonized. The result is a precise and compact SSA representation based on global value numbering, called HSSA, that uniformly handles both scalar variables and indirect memory operations. We discuss the capabilities of the HSSA representation and present measurements that show the effects of implementing our techniques in a production global optimizer. Keywords. Aliasing, Factoring dependences, Hash tables, Indirect memory operations, Program representation, Static single assignment, Value numbering. 1 Introduction The Static Single Assignment (SSA) form [CFR+91] is a popular and efficient representation for performing analyses and optimizations involving scalar variables. Effecti...
Citations
|
644
|
Efficiently computing static single assignment form and the control dependence graph
– Cytron, Ferrante, et al.
- 1991
|
|
348
|
Efficient context-sensitive pointer analysis for C programs
– Wilson, Lam
- 1995
|
|
320
|
Analysis of pointers and structures
– Chase, Wegman, et al.
- 1990
|
|
265
|
Constant propagation with conditional branches
– Wegman, Zadeck
- 1991
|
|
189
|
Zadeck. Detecting equality of variables in programs
– Alpern, Wegman, et al.
- 1988
|
|
184
|
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
– Choi, Burke, et al.
- 1993
|
|
148
|
Global value numbers and redundant computation
– Rosen, Wegman, et al.
- 1988
|
|
116
|
Context-Insensitive Alias Analysis Reconsidered
– Ruf
- 1995
|
|
79
|
Beyond induction variables
– Wolfe
- 1992
|
|
66
|
A portable machine-independent global optimizer { design and measurements
– Chow
- 1983
|
|
32
|
Programming languages and their compilers
– Cocke, Schwartz
- 1970
|
|
23
|
On the Efficient Engineering of Ambitious Program Analysis
– Choi, Cytron, et al.
- 1994
|
|
21
|
Global code motion, global value numbering
– Click
- 1995
|
|
16
|
Sparse functional stores for imperative programs
– Steensgaard
- 1995
|
|
3
|
Efficient Accomodation of May-alias Information
– Cytron, Gershbein
- 1993
|