## Using Static Single Assignment Form to Improve Flow-Insensitive Pointer Analysis (1998)

Venue: | In Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation |

Citations: | 41 - 0 self |

### BibTeX

@INPROCEEDINGS{Hasti98usingstatic,

author = {Rebecca Hasti and Susan Horwitz},

title = {Using Static Single Assignment Form to Improve Flow-Insensitive Pointer Analysis},

booktitle = {In Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation},

year = {1998},

pages = {97--105}

}

### Years of Citing Articles

### OpenURL

### Abstract

A pointer-analysis algorithm can be either flow-sensitive or flow-insensitive. While flow-sensitive analysis usually provides more precise information, it is also usually considerably more costly in terms of time and space. The main contribution of this paper is the presentation of another option in the form of an algorithm that can be `tuned' to provide a range of results that fall between the results of flow-insensitive and flow-sensitive analysis. The algorithm combines a flow-insensitive pointer analysis with static single assignment (SSA) form and uses an iterative process to obtain progressively better results. 1 Introduction Having information about what pointer variables may point to is very useful (and often necessary) when performing many kinds of program analyses. Obviously, the better (or more precise) the information, the more useful the information is. A points-to analysis that takes into account the order in which statements may be executed (i.e., a flow-sensitive anal...

### Citations

526 | Program Analysis and Specialization for the C Programming Language
- Andersen
- 1994
(Show Context)
Citation Context ... in the size of the original program. However, experimental evidence suggests that both the time to translate and the size of the translated program are linear in practice [CFR + 91] [CC95]. Andersen =-=[And94]-=- gives a flow-insensitive pointer-analysis algorithm that computes the greatest fixed point of the set of equations (2) given in Section 1.1. Andersen's algorithm is cubic in the worst case. Experimen... |

518 | Points-to analysis in almost linear time
- Steensgaard
- 1996
(Show Context)
Citation Context ...the algorithm's performance in practice[SH97] is inconclusive: on small programs (up to about 10,000 lines) its performance is very similar to that of Steensgaard's (essentially) linear-time algorithm=-=[Ste96]-=-; however, lines of code alone does not seem to be a good predictor of runtime (for example, one 6,000 line program required over 700 CPU seconds, while several 7,000 line programs required only 3 sec... |

308 | A unified approach to global program optimization
- Kildall
- 1973
(Show Context)
Citation Context ...k to all call sites. In this paper, all analyses are assumed to be context-insensitive.) One way to think about flow-insensitive analysis is in terms of a variation on the standard dataflow framework =-=[Kil73]-=-. The standard framework includes: 1. a lattice of dataflow facts, 2. a set of monotonic dataflow functions, 3. a control flow graph (CFG), 4. a mapping that associates one dataflow function with each... |

149 | Fast and accurate flow-insensitive points-to analysis
- Shapiro, Horwitz
(Show Context)
Citation Context ...eatest fixed point of the set of equations (2) given in Section 1.1. Andersen's algorithm is cubic in the worst case. Experimental evidence intended to evaluate the algorithm's performance in practice=-=[SH97]-=- is inconclusive: on small programs (up to about 10,000 lines) its performance is very similar to that of Steensgaard's (essentially) linear-time algorithm[Ste96]; however, lines of code alone does no... |

118 |
A precise interprocedural data flow algorithm
- Myers
- 1981
(Show Context)
Citation Context ...he called function, and from the exit node of the called function to the call's returnpoint node. Figure 7(a) shows the CFGs for the program in 2 The term supergraph was first used by Eugene Myers in =-=[Mye81]-=-. William Landi and Barbara Ryder [LR91] use the term interprocedural control flow graph (ICFG). Given: a list L of CFGs Do flow-insensitive pointer analysis on L For each CFG G in L Annotate the dere... |

75 | Combining Analyses, Combining Optimizations
- Click, Cooper
- 1995
(Show Context)
Citation Context ... can be quadratic in the size of the original program. However, experimental evidence suggests that both the time to translate and the size of the translated program are linear in practice [CFR + 91] =-=[CC95]-=-. Andersen [And94] gives a flow-insensitive pointer-analysis algorithm that computes the greatest fixed point of the set of equations (2) given in Section 1.1. Andersen's algorithm is cubic in the wor... |

68 | Flowinsensitive interprocedural alias analysis in the presence of pointers
- Burke, Carini, et al.
- 1995
(Show Context)
Citation Context ...e presence of pointers. However, they abandon SSA form and develop instead a related analysis called SSA Numbering. Others have worked on improving the precision of flowinsensitive alias analysis. In =-=[BCCH94]-=- Burke et al. develop an approach that involves using pre-computed kill information, although an empirical study by Hind and Pioli [HP97] does not show it to be more precise in practice than a flowins... |

37 | Precise flow-insensitive May-Alias analysis is NP-hard
- Horwitz
- 1997
(Show Context)
Citation Context ...a0) d = b d0 = b0 c = a + b c1 = a2 + b0 (2) print(c) print(c1 ) (3) (a) Original (b) SSA Form Figure 1: Example for constant propagation an edge from each node to every other node (including itself) =-=[Hor97]-=-. Again, the ideal goal of the analysis is to find the meet-over-all-paths solution (in the modified CFG), and when this is not feasible, to find the greatest solution to the set of equations: n:fact ... |

21 | Extended ssa numbering: Introducing ssa properties to languages with multi-level pointers
- Lapkowski, Hendren
- 1996
(Show Context)
Citation Context ...ted may-alias information and incorporates points-to information as needed into a partial SSA form while solving another dataflow problem (constant propagation, in their paper). Lapkowski and Hendren =-=[LH96]-=- also discuss the problems with SSA form in the presence of pointers. However, they abandon SSA form and develop instead a related analysis called SSA Numbering. Others have worked on improving the pr... |

19 |
A linear time algorithm for placing OEnodes
- Sreedhar, Gao
- 1995
(Show Context)
Citation Context ... CFGs. 2.2 Complexity Each iteration of our algorithm requires a transformation to SSA form and a flow-insensitive pointer analysis. Although there exists a linear-time algorithm for placing OE nodes =-=[SG95]-=-, the renaming phase of translation to SSA form can take cubic time in the worst case. Thus, in the worst case, the time needed to completely translate a program into SSA form (including renaming) is ... |

9 | An empirical comparison of interprocedural pointer alias analyses
- Hind, Pioli
- 1997
(Show Context)
Citation Context ...mproving the precision of flowinsensitive alias analysis. In [BCCH94] Burke et al. develop an approach that involves using pre-computed kill information, although an empirical study by Hind and Pioli =-=[HP97]-=- does not show it to be more precise in practice than a flowinsensitive analysis. Shapiro and Horwitz [SH97] give an algorithm that can be `tuned' so that its precision as well as worst-case time and ... |

9 |
induced aliasing: A problem classification
- Pointer
- 1991
(Show Context)
Citation Context ...e of the called function to the call's returnpoint node. Figure 7(a) shows the CFGs for the program in 2 The term supergraph was first used by Eugene Myers in [Mye81]. William Landi and Barbara Ryder =-=[LR91]-=- use the term interprocedural control flow graph (ICFG). Given: a list L of CFGs Do flow-insensitive pointer analysis on L For each CFG G in L Annotate the dereferences in G Create the supergraph S fo... |

3 |
Efficient accommodation of may-alias information
- Cytron, Gershbein
- 1993
(Show Context)
Citation Context ...) Figure 7: The CFGs and supergraph corresponding to the code in Figure 6 8 3 Related Work A program representation similar to the intermediate form described here was used by Cytron and Gershbein in =-=[CG93]-=-, where they give an algorithm for incrementally incorporating points-to information into SSA form. Our intermediate representation is essentially an in-lined version of Cytron and Gershbein's IsAlias... |