## Efficient Flow-Sensitive Interprocedural Computation of Pointer-Induced Aliases and Side Effects (1993)

Citations: | 223 - 11 self |

### BibTeX

@INPROCEEDINGS{Choi93efficientflow-sensitive,

author = {Jong-deok Choi and Michael Burke and Paul Carini},

title = {Efficient Flow-Sensitive Interprocedural Computation of Pointer-Induced Aliases and Side Effects},

booktitle = {},

year = {1993},

pages = {232--245},

publisher = {ACM Press}

}

### Years of Citing Articles

### OpenURL

### Abstract

We present practical approximation methods for computing interprocedural aliases and side effects for a program written in a language that includes pointers, reference parameters and recursion. We present the following results: 1) An algorithm for flow-sensitive interprocedural alias analysis which is more precise and efficient than the best interprocedural method known. 2) An extension of traditional flow-insensitive alias analysis which accommodates pointers and provides a framework for a family of algorithms which trade off precision for efficiency. 3) An algorithm which correctly computes side effects in the presence of pointers. Pointers cannot be correctly handled by conventional methods for side effect analysis. 4) An alias naming technique which handles dynamically allocated objects and guarantees the correctness of data-flow analysis. 5) A compact representation based on transitive reduction which does not result in a loss of precision and improves precision in some cases. 6)...

### Citations

862 | Efficiently computing static single assignment form and the program dependence graph
- Cytron, Ferrante, et al.
- 1991
(Show Context)
Citation Context ... number of nodes (edges) in the control flow graphs of the procedures in the program. In practice, the complexity of SEG construction is O(CFE + CFN ) for a procedure and so O(EE + NN ) for a program =-=[11]-=-. The space complexity during the interprocedural phase is O(AsP ). The interprocedural phase dominates the time complexity. The worst case requires O(AsP ) iterations over the PCG. The time complexit... |

390 |
Zadeck. Analysis of pointers and structures
- Chase, Wegman, et al.
- 1990
(Show Context)
Citation Context ...ysis does not incur any cost beyond the conventional algorithms. ffl A naming technique for dynamically allocated objects. This technique improves the precision of existing methods for alias analysis =-=[7, 12, 13, 18]-=-. ffl An alias naming technique which, when aliases are factored into data-flow analysis, guarantees the correctness and enhances the precision of data-flow analysis. This technique also allows a comp... |

332 | B.G.: A safe approximate algorithm for interprocedural pointer aliasing
- Landi, Ryder
- 1992
(Show Context)
Citation Context ... constant, A a is the average number of aliases holding at a statement, and T a is the average number of aliases for an object. 8 Related Work The most closely related work is that of Landi and Ryder =-=[16, 17]-=-, which present algorithms for computing aliasing for the same language constructs that we consider here. Our method for computing intraprocedural aliases differs from theirs in that it employs a spar... |

164 | A.: Parallelizing Programs with Recursive Data Structures
- Hendren, Nicolau
- 1990
(Show Context)
Citation Context ...ysis does not incur any cost beyond the conventional algorithms. ffl A naming technique for dynamically allocated objects. This technique improves the precision of existing methods for alias analysis =-=[7, 12, 13, 18]-=-. ffl An alias naming technique which, when aliases are factored into data-flow analysis, guarantees the correctness and enhances the precision of data-flow analysis. This technique also allows a comp... |

161 |
The transitive reduction of a directed graph
- Aho, Garey, et al.
- 1972
(Show Context)
Citation Context ... determine the named object (s) to which it is aliased. During this traversal, the number of de-references encountered must be counted. Note that this is equivalent to performing transitive reductions=-=[1]-=- over the directed graph of alias relations during alias analysis, and later computing full alias information on demand. With this compact representation, alias information of (7) in Section 3 will be... |

159 |
P.N.: Detecting Conflicts between Structure Accesses
- Larus, Hilfinger
- 1988
(Show Context)
Citation Context ...ysis does not incur any cost beyond the conventional algorithms. ffl A naming technique for dynamically allocated objects. This technique improves the precision of existing methods for alias analysis =-=[7, 12, 13, 18]-=-. ffl An alias naming technique which, when aliases are factored into data-flow analysis, guarantees the correctness and enhances the precision of data-flow analysis. This technique also allows a comp... |

145 |
Dependence analysis for pointer variables
- Horwitz, Pfeiffer, et al.
- 1989
(Show Context)
Citation Context |

130 |
An efficient way to find the side effects of procedure calls and the aliases of variables
- Banning
- 1979
(Show Context)
Citation Context ...thod known [16, 17]. The flow-sensitive interprocedural alias analysis method interleaves intraprocedural and interprocedural analyses. ffl An extension of traditional flow-insensitive alias analysis =-=[4, 10]-=- to accommodate pointers. Our flowinsensitivesalias analysis method provides a framework for a family of algorithms with varying degrees of precision. ffl An algorithm which correctly computes side ef... |

129 |
Interprocedural dependence analysis and parallelization
- Burke, Cytron
- 1986
(Show Context)
Citation Context ...en out non-reachable aliases of P -- aliases that contain access paths not reachable in P , because such non-reachable aliases of P may become reachable aliases of routines (transitively) called by P =-=[6]-=-. AOUT at a call site C of P in Q consists of two components: AOUT (null) which is the set of aliases in ALIASExit that are generated independently of 4 Since an alias relation consists of a pair of a... |

126 | Global data flow analysis and iterative algorithms
- Kam, Ullman
- 1976
(Show Context)
Citation Context ...afe kill information, in time linear with respect to the number of nodes in the control flow graph, 2 In the presence of cycles, topological order is defined by the removal of back edges from the PCG =-=[15]-=-. S 1 : foreach procedure, set ALIASEntry = STAT IC ALIASES; S 2 : set ALIASExit = fg; S 3 : repeat; S 4 : foreach procedure P visited in a topological traversal over the PCG; S 5 : compute ALIASEntry... |

123 |
Interprocedural side-effect analysis in linear time
- Cooper, Kennedy
(Show Context)
Citation Context ...amework for a family of algorithms with varying degrees of precision. ffl An algorithm which correctly computes side effects in the presence of pointers. Conventional methods for side-effect analysis =-=[4, 9, 5]-=- decompose the computation into separate direct side-effect and alias analyses. Pointers cannot be correctly handled by algorithms based on this decomposition. Apart from the cost of the alias analysi... |

119 | A precise interprocedural data flow algorithm - Myers - 1981 |

114 | Automatic Construction of Sparse Data Flow Evaluation Graphs - Choi, Cytron, et al. - 1991 |

108 | Pointer-induced aliasing: A problem classification
- Landi, Ryder
- 1991
(Show Context)
Citation Context ...ch is a basis for program transformations such as optimization and parallelization. The problem of exactly computing interprocedural aliases in the presence of general pointers is known to be NP-hard =-=[16]-=-. In this paper, we describe approximation methods for computing interprocedural aliases and side effects for a program written in a language that includes pointers, reference parameters and recursion... |

105 | A flexible approach to interprocedural data flow analysis and programs with recursive data structures
- Jones, S
- 1982
(Show Context)
Citation Context ...mous object is created as in [7], combined with the k-limited approach: we allow up to k instances of the object to have distinct names for each statement, where k is a pre-determined constant (as in =-=[14, 21, 18, 13]-=-). We thus ensure that a pointer expression is always associated with at least one named object to which it is aliased. The named object, instead of the access path of the expression itself, is used f... |

100 |
An overview of the PTRAN analysis system for multiprocessing
- Allen, Burke, et al.
- 1987
(Show Context)
Citation Context ... or analysis of individual routines during the interprocedural component of the analysis. The basic model of computing flow-insensitive interprocedural aliasing is similar to that of the PTRAN system =-=[3]-=-, which computes this information for FORTRAN 77 programs in a single topological-order traversal over the PCG. The major difference is that iteration over the PCG is required due to cycles resulting ... |

91 |
Fast Algorithms for Solving Path Problems
- Tarjan
- 1981
(Show Context)
Citation Context ...namically allocated objects. A more detailed description is provided in Section 6. 3 Intraprocedural Alias Computation The intraprocedural alias computation can be formulated as a data flow framework =-=[20, 22]-=-, in which the solution at a given program point is related to the solution at other points. A control flow graph is a directed graph CFG =! NCFG ; ECFG ; Entry; Exit ?. The nodes NCFG are the stateme... |

84 | An interval-based approach to exhaustive and incremental interprocedural data- analysis - Burke - 1990 |

72 |
Fast Interprocedural Alias Analysis
- Cooper, Kennedy
- 1989
(Show Context)
Citation Context ...thod known [16, 17]. The flow-sensitive interprocedural alias analysis method interleaves intraprocedural and interprocedural analyses. ffl An extension of traditional flow-insensitive alias analysis =-=[4, 10]-=- to accommodate pointers. Our flowinsensitivesalias analysis method provides a framework for a family of algorithms with varying degrees of precision. ffl An algorithm which correctly computes side ef... |

62 |
Lifetime analysis of dynamically allocated objects
- Ruggieri, Murtagh
- 1988
(Show Context)
Citation Context ...mous object is created as in [7], combined with the k-limited approach: we allow up to k instances of the object to have distinct names for each statement, where k is a pre-determined constant (as in =-=[14, 21, 18, 13]-=-). We thus ensure that a pointer expression is always associated with at least one named object to which it is aliased. The named object, instead of the access path of the expression itself, is used f... |

31 |
Data flow analysis for procedural languages
- Rosen
- 1979
(Show Context)
Citation Context ...namically allocated objects. A more detailed description is provided in Section 6. 3 Intraprocedural Alias Computation The intraprocedural alias computation can be formulated as a data flow framework =-=[20, 22]-=-, in which the solution at a given program point is related to the solution at other points. A control flow graph is a directed graph CFG =! NCFG ; ECFG ; Entry; Exit ?. The nodes NCFG are the stateme... |

3 | 1] [2] [3] [4] [5] [6] [7] [8] [9 - Aho, Garey, et al. - 1972 |

1 | An overview of the ptran analysis system for multiprocessing - Principles, Techniques, et al. - 1986 |