| K. D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the 16th Annual ACM Symposium on Principles of Programming Languages (POPL'89), pages 49--59, January 1989. |
....from an implementation in the McCAT optimizing parallelizing C compiler. 1 Introduction and Motivation Alias and dependence analysis are fundamental components of optimizing and parallelizing compilers. Although traditionally studied in the context of Fortran or block structured languages [1, 2, 8, 9], there has been increasing interest in providing accurate alias and side effect analysis for C programs [7, 31] Solving these problems for C rather than Fortran leads to many interesting and difficult problems including the treatment of the address of operator (i.e. a) which can create new ....
K. D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....using static and dynamic metrics, and a limit analysis. The majority of previous work on alias analysis uses only static properties, such as the size of the may alias and points to sets [Banning 1979; Burke et al. 1994; Hind et al. 1999; Chatterjee et al. 1999; Chase et al. 1990; Choi et al. 1993; Cooper and Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980] A few researchers recently have used dynamic evaluation such as measuring the execution time improvement due to an optimization that uses alias ....
....number of paths through an unbounded collection of data, and is therefore harder than traditional data flow analyses. The literature contains many algorithms for alias analysis [Banning 1979; Burke et al. 1994; Hind et al. 1999; Chatterjee et al. 1999; Chase et al. 1990; Choi et al. 1993; Cooper and Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980; Hummel et al. 1994; Cooper and Lu 1997; Larus and Hilfinger 1988; Wilson and Lam 1995] The key differences between the algorithms stem from how they ....
[Article contains additional citation context not shown here]
COOPER, K. D. AND KENNEDY, K. 1989. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. 49--59.
....directly between the definition and use statements. Part of this cost may be recovered by using sparse evaluation graphs (SEG) CCF91] instead of CFGs. The call graph of a program is affected by program aliases. On the other hand, the set of aliases in a program is influenced by the call graph [Ban79, CBC93, CK89, LR91]. To obtain precise results these two problems should be solved simultaneously. Though we treat global variables and call by references, two of the sources of aliasing, we ignore the aliasing problem. It may be observed that the pointer induced aliasing algorithms of [CBC93, LR91] and our ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59. ACM Press, January 1989.
....for variables, since it must deal not only with an unbounded number of paths through the program, like traditional data flow analyses, but it must handle an unbounded number of paths through an unbounded collection of data. Many algorithms for alias analysis have been suggested in the literature [9, 14, 26, 29, 25, 45, 62, 68, 69, 72, 96, 111, 112] , and the key difference between the algorithms stem from where and how they approximate the unbounded control paths and data (Chapter 9) The approximation determines the precision and efficiency of the algorithm. Indeed, alias analyses proposed in the literature range from precise ....
....the algorithm. Indeed, alias analyses proposed in the literature range from precise exponential time algorithms to less precise nearly linear time algorithms. Despite the plethora of available alias analysis algorithms, the tradeoffs between the different techniques are not understood. Prior work [9, 14, 26, 29, 25, 45, 68, 69, 72, 96, 111] , with two exception [62, 112] uses static metrics (if anything at all) to evaluate alias analysis. Static metrics are insufficient for evaluating an analysis since they do not measure the impact of the analysis on performance. Also, the evaluation in prior work does not measure if there is room ....
[Article contains additional citation context not shown here]
Cooper, K. D. and Kennedy, K. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, pages 49--59, 1989.
....5.4) 5.1 Metrics We evaluate TBAA with respect to RLE and method resolution using static and dynamic metrics, and a limit analysis. The majority of previous work on alias analysis [Banning 1979; Burke et al. 1994; Hind et al. 1999; Chatterjee et al. 1999; Chase et al. 1990; Choi et al. 1993; Cooper and Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980] uses only static properties, such as the size of the may alias and pointsto sets. A few researchers recently have used dynamic evaluation such as ....
....number of paths through an unbounded collection of data, and is therefore harder than traditional data flow analyses. The literature contains many algorithms for alias analysis [Banning 1979; Burke et al. 1994; Hind et al. 1999; Chatterjee et al. 1999; Chase et al. 1990; Choi et al. 1993; Cooper and Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980; Cooper and Kennedy 1989; Hummel et al. 1994; Cooper and Lu 1997; Larus and Hilfinger 1988; Wilson and Lam 1995] The key differences between the ....
[Article contains additional citation context not shown here]
COOPER, K. D. AND KENNEDY, K. 1989. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. 49--59.
....rle. 4. RESULTS This section evaluates type based alias analysis and method resolution analyses using static and dynamic metrics, and a limit analysis. The majority of previous work on alias analysis [Banning 1979; Burke et al. 1994; Chatterjee et al. 1999; Chase et al. 1990; Choi et al. 1993; Cooper and Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980] evaluates alias analysis using only static properties, such as the sizes of the may alias and points to sets. A few researchers recently have used ....
....Cooper and 7 Only virtual functions may be overridden in subtypes. Using Types to Analyze and Optimize Object Oriented Programs Delta 35 Kennedy 1989; Deutsch 1994; Emami et al. 1994; Landi and Ryder 1991; 1992; Larus and Hilfinger 1988; Shapiro and Horwitz 1997b; Steensgaard 1996; Weihl 1980][Cooper and Kennedy 1989; Hummel et al. 1994; Cooper and Lu 1997; Larus and Hilfinger 1988; Wilson and Lam 1995] The key differences between the algorithms stem from where and how they approximate the unbounded control paths and data. The approximation determines the precision and efficiency of the algorithm, and these ....
[Article contains additional citation context not shown here]
Cooper, K. D. and Kennedy, K. 1989. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. 49--59.
....programs has been chiefly driven by research on automatic parallelization, parallelizing large loops containing procedure calls being of the utmost importance to achieve good performances. At first, the main purpose was therefore to analyze interprocedural dependences. And alias analysis [16, 29, 72, 62] as well as summary data flow information or interprocedural side effects (sdfi) 28] on scalar variables were among the main analyses. To enhance the results of these analyses, and to enable other useful code transformations 6 Recursivity and formal procedures are not often used in scientific ....
K. D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Symposium on Principles of Programming Languages, pages 49--59, February 1989.
....or are introduced by procedure calls (due to passing the same parameter by reference multiple times, or to passing a global variable as a reference parameter) Because aliases are only propagated from a caller to a callee, and not vice versa, calculation of aliases is greatly simplified. 3 Cooper and Kennedy [1988; 1989] describe an efficient, precise solution for determining the aliases at each program point in a language that does not contain pointers. However, finding a precise solution for a language that includes pointers is an NP complete problem [Landi and Ryder 1991] Approximate algorithms that handle ....
Cooper, K. D. and Kennedy, K. 1989. Fast interprocedural alias analysis. In Proceedings of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, (Austin, Tex., Jan.). ACM Press, New York, pp. 49--59.
....static analysis, Type determination, Aliasing, Virtual functions, Pointers. 1 Introduction In the past decade, significant research by the static analysis community has concentrated on expanding compile time analysis to include interprocedural information [BCC 94, Bur90, Cal88, CBC93, CK88, CK89, HS94, HRB90, LRZ93, MLR 93, Mey81] Historically, compile time analysis has been used in intraprocedural context for code optimizations. The emphasis is shifting towards the use of interprocedural static analysis in compiling as well as all phases of software life cycle including debugging, ....
....SELF programs have shown promise of adaptability to C . The algorithm by Larcheveque [Lar92] is rendered imprecise by the fact that it factors out the side effects of function invocations and aliasing due to parameter bindings as well as pointers. The suggested algorithms for these problems [CK89, Wei84] are grossly approximate and unsuitable in a C context. We show that aliasing and type determination are inseparable in the general case, therefore a factored approach 2 For related work on pointer induced aliasing, see [LR92] is not desirable. Ramesh Parameswaran has developed ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....passes will be acceptable for several reasons. Primarily, we believe that flow insensitive interprocedural analysis is trivial in analysis costs and stable in its solutions. ffl The classical flow insensitive problems of mod, ref and alias have extremely efficient solutions [CK88b, CK89] ffl Mod, ref and alias can be expected to change infrequently across program edits adding the first and deleting the last references of a variable are rare decisions, and aliases are rare both in their occurrence and in their insertion and deletion. 129 ffl More modern languages than ....
....may be practical. The improved complexity analysis of Myers s methods for flow sensitive analysis suggest further experiments using our annotated call graph. Aliases are usually rare in practice, so the Must Alias computation should not be much more expensive than the May Alias computation [CK89] An initial interprocedural phase could gather alias information and allow a pruned supergraph, something like the PSG described later, to be used for more efficient solution. The solutions to flow sensitive analysis could be improved through symbolic evaluation of conditional branches. The ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Proceedings of the Sixteenth Annual ACM Symposium on the Principles of Programming Languages, pages 49--59, Austin, Texas, January 1989.
....in the translated program. The size of the translated program is linear in the size of the original program. In this simplified case, our algorithm for existential pointer equalities is similar to Cooper s [4] Our algorithm for finding universal pointer equalities solves an open problem raised in [5]. Our efficient algorithm for finding universal pointer equalities in PEP is not necessarily statically exact even for pointer equalities of the form eq 8 (t; nil) Indeed, in Section 6.2.2 we show that it is CO NP hard to find whether eq 8 (t; nil) holds for a given point in a PEP program and a ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In ACM Symposium on Principles of Programming Languages, pages 49--59, 1989.
....6. Perform Reverse Topological Traversal Figure 2: Compilation Model Overview handling missing procedures) the interprocedural analysis phase begins by constructing the program call graph (PCG) An interprocedural alias analysis is then performed, which includes both reference parameter [14, 4] and pointer induced [12, 8] alias analyses. This is followed by a phase that includes the computation of interprocedural mod and ref information [4, 13, 6] which is implemented as a flow insensitive traversal of the PCG. This computation relies upon the IPA inputs that are initially collected, ....
Keith Cooper and Ken Kennedy. Fast interprocedural alias analysis. In 16th Annual ACM Symposium on the Principles of Programming Languages, 1989.
....corresponding task system (TDG 1 ) Two variables are aliases when they both refer to a common memory location at the same time during execution. For a procedure, Aliasing asks for the set of variable pairs (x; y) such that x and y may be aliases in some invocation of that procedure 6 [Ban79, CK89] Must Aliasing asks for the set of variable pairs (x; y) such that x and y must be aliases in all invocations of that procedure. MOD is dependent on Aliasing, and KILL on Must Aliasing. REACH is dependent on MOD, KILL and Aliasing. MOD information determines the creation of definitions in a ....
Keith Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the 16th Annual ACM Symposium on Principles of Programming Languages, pages 49--59. ACM Press, January 1989. Austin, Texas.
....and applies the idea of elimination to information propagation on the reduced graph. Interprocedural modification side e#ect analysis (i.e. MOD) finds the set of variables in a program whose values can be a#ected by the execution of an individual statement in the program. Cooper and Kennedy [CK87, CK89] decomposed the MOD problem for FORTRAN like languages into side e#ects on global variables and side e#ects induced by parameter passing. Based on the decomposition, they proposed an e#cient flow insensitive 1 algorithm for the problem. However, in the presence of general purpose pointers, as in ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49-59, January 1989.
....discuss the generalization of our approach to analyze programs with multiple levels of pointer dereferencing. 1 Introduction Recent emphasis in the static analysis community has been on expanding compile time analysis to include interprocedural information [Bur90, Cal88, CBC93, MLR 93, CK88, CK89, HS90, HRB90, LRZ93, Mey81] Historically, compile time analysis has been used in intraprocedural context for code optimizations. The emphasis is shifting towards including the use of interprocedural static analysis in all phases of the software life cycle including debugging, integration and ....
....binding by procedure calls or inlined code [CU89, CU90, HCU91] The algorithm by Larcheveque [Lar92] is rendered imprecise by the fact that it factors out the side effects of method invocations and aliasing due to parameter bindings as well as pointers. The suggested algorithms for these problems [CK89, Wei84] are grossly approximate and unsuitable in C context. We show that aliasing and type determination are inseparable in the general case, therefore a factored approach is not desirable. Ramesh Parameswaran has developed an algorithm which performs alias analysis without the knowledge of ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49-59, January 1989.
....Evaluation This section evaluates type based alias analysis using static and dynamic metrics, and a limit analysis. We first review the strengths and weaknesses of static and dynamic metrics, and thus motivate our limit analysis. Static Evaluation. The majority of previous work on alias analysis [2, 4, 6, 7, 9, 15, 20, 21, 22, 30, 32, 35] measures static properties, such as the sizes of the may alias and points to sets. Static properties enable comparisons between the precision of two alias analyses using the size of their static points to sets; the smaller the set the more precise the analysis. Static properties have, however, ....
....alias pairs did not reduce the effectiveness of RLE. 5 Related Work Alias analysis must consider an unbounded number of paths through an unbounded collection of data, and is therefore harder than traditional data flow analyses. The literature contains many algorithms for alias analysis [2, 4, 6, 7, 9, 15, 19, 8, 20, 21, 22, 30, 32, 35, 36]. The key differences between the algorithms stem from where and how they approximate the unbounded control paths and data. The approximation determines the precision and efficiency of the algorithm, and these alias analyses range from precise exponential time algorithms to less precise nearly ....
[Article contains additional citation context not shown here]
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages, pages 49--59, 1989.
....determines where a use of a variable can safely be replaced by a constant; Range Propagation determines a range to which the values taken on by a variable at a given use can be restricted. The best known interprocedural problems are Formal Bound Set, MayAlias and MayBeModified F [Bur90, CK84, CK89, CK87] Formal Bound Set asks, for all procedure formals, which formals can be reached over call chains from this given formal. The MayAlias problem determines the set of alias pairs (x; y) so that x and y may refer to the same storage location at a given program point; for pass by reference ....
....problems on page 5, only MayBeDefined is flow insensitive by [CC] For bitvector problems, CC] has the effect of Figure 3. May Problem Criterion [CC] is apparently responsible for the May Problem Criterion [MPC] a definition of flow insensitivity appearing in a number of early papers [CK84, CK89] May, or some path, problems are flow insensitive, Must, or all path and no path, problems are flow sensitive. This definition may also have been influenced by terminology in [Mye81] in which Myers shows the MaySummaryProblem (MayBeModified F ) to be flow insensitive, and the ....
[Article contains additional citation context not shown here]
K. D. Cooper and K. W. Kennedy. Fast interprocedural alias analysis. Conf. Rec. Sixteenth ACM Symp. on Principles of Programming Languages, pages 49--59, January 1989. Austin, Texas.
....are given in Figure 2(b) and Figure 3(b) Further details about SIMPLE may be found in [HDE 92, Sri92] 2. 2 Stack Matrix Analysis and Abstract Stack Locations The fundamental point of our approach is that rather than collecting alias information in the form of alias pairs [Bar78, Ban79, Coo85, CK89, LR92, Lan92] we have chosen to directly abstract relationships between locations. More specifically, we use an abstraction which associates a name with every important stack location, and we use abstract interpretation techniques to approximate the relationships between these abstract ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, Austin, Texas, January 11--13, 1989. ACM SIGACT and SIGPLAN.
....for solving intraprocedural bit vector dataflow analysis problems. This approach was later applied to intraprocedural bi directional bit vector problems [18] Cooper and Kennedy used reachability to give efficient algorithms for interprocedural side effect analysis [2] and alias analysis [3]. The first uses of CFL reachability for program analysis were in 1988, in Callahan s work on flow sensitive side effect analysis [1] and Horwitz et al. s work on interprocedural slicing [12, 13] Both papers use only limited forms of CFL reachability, namely various kinds of matched parenthesis ....
K.D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In ACM Symposium on Principles of Programming Languages, pages 49--59, 1989.
....of systems have been described for link time code optimization [5, 14, 15, 26, 29, 30, 32] to the best of our knowledge none of these carry out any alias analysis on the executable files they process. There is an extensive body of work on pointer alias analysis of various kinds (see, for example, [2, 3, 4, 6, 8, 10, 11, 12, 13, 17, 18, 20, 21, 22, 23, 25, 27, 28, 31, 33, 34]) The work most closely related to ours is that of Wilson and Lam [34] who describe a low level pointer alias analysis for C programs. Their work attempts to deal with nasty features of real programs and can handle simple pointer increments and decrements, but is unable to cope with the more ....
K. D. Cooper and K. Kennedy, "Fast Interprocedural Alias Analysis", Proc. 16th ACM Symposium on Principles of Programming Languages, Jan. 1989, pp. 49--59.
....Aliases represent important semantic information whose precision can greatly affect the quality of optimized code and the precision of various compile time interprocedural 3 The research reported here was supported, in part, by Siemens Research Corporation and NSF grant CCR 8920078. 0 analyses [Cal88, CK89, PRL91]. An alias occurs at some program point during program execution when two or more names exist for the same location. The aliases of a particular name at a program point t are all other names that refer to the same memory location on some path to t. When this execution path traverses more than one ....
....of a particular name at a program point t are all other names that refer to the same memory location on some path to t. When this execution path traverses more than one procedure, we are solving the Interprocedural May Alias Problem. While the calculation of aliases for FORTRAN is well understood [Ban79, Coo85, CK89, Mye81], aliasing in C is different than aliasing in Fortran in two respects. First, aliases can change due to side effects of intraprocedural execution flow. Second, aliases created during execution of a called procedure can affect aliases which hold on return to the calling procedure. Arbitrary ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....Since one procedure may call another at many points, a call graph may be a multigraph with more than one edge connecting two nodes. A program s call graph can be constructed efficiently [119] and used for different applications, like flowinsensitive interprocedural data flow analysis, e.g. [46, 126], and software salvaging [40, 42] 3.1.3 Interprocedural Control Flow Graph The features of these two representations have been combined in the interprocedural control flow graph [93] An interprocedural control flow graph is the union of the control flow graphs of the individual procedures in ....
K. Cooper and K. Kennedy, "Fast interprocedural alias analysis", in Proceedings of the 16th Annual ACM Symposioum on Principles of Programming Languages, Austin, Texas, U.S.A., ACM Press, 1989, pp. 49-59.
.... and which variables may have their values used by c s execution, respectively [6, 11] The flow insensitive versions of these sideeffect analysis problems can be decomposed into two subsidiary phases: computing alias information and computing side effects due to reference formal parameters [6, 12, 11]. Given a demand at the outermost level (e.g. What is the MayMod set for a given call site c on procedure p ) a demand algorithm has the potential to reduce drastically the amount of work spent in preprocessing or other auxiliary phases by propagating only appropriate demands into earlier ....
K.D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth ACM Symposium on Principles of Programming Languages, pages 49--59, Austin, TX, January 1989.
....are passed by value in C, it is necessary first to detect which parameters function as reference parameters. This is done by detecting which parameters contain addresses and are not redefined within the body of the procedure. Reference parameter alias analysis of is then performed as described in [CK89] After the reference parameter alias analysis the control flow graph of each function is constructed and dominators computed. This is followed by loop nest analysis, dependence graph construction, interprocedural summary side effect analysis implemented (also as described in [CK88] constant ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, Austin, Texas, January 1989. 119
....has been hampered by the lack of precision in the alias analyses. Many spurious side effects are generated because of this imprecision [23] 1. 2 Related Work Recent emphasis in the static analysis community has been on expanding compile time analyses to include interprocedural information [3, 7, 8, 14, 15, 18, 28, 29, 30]. The Fortran model of interprocedural communication has been successfully analyzed [3, 7, 8, 15, 29] although some analyses have yet to demonstrate their practicality. Callahan [3] and Harrold Soffa [15] suggested factoring the aliases into the problem solution after the side effect analysis, as ....
....of this imprecision [23] 1. 2 Related Work Recent emphasis in the static analysis community has been on expanding compile time analyses to include interprocedural information [3, 7, 8, 14, 15, 18, 28, 29, 30] The Fortran model of interprocedural communication has been successfully analyzed [3, 7, 8, 15, 29], although some analyses have yet to demonstrate their practicality. Callahan [3] and Harrold Soffa [15] suggested factoring the aliases into the problem solution after the side effect analysis, as in previous work by Lomet [29] Lomet s approach suggested that an approximation of side effects ....
[Article contains additional citation context not shown here]
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....occur in the same head term. This is very conservative, since it produces inexact results in the most commonly occurring cases. Moreover, the likelihood of the procedure being called with the pathological term that necessitates this is very low. Further enhancements in alias analysis such as using [11, 27, 28, 66, 67] may yield significant improvements. For each literal l the procedure in Figure 6.2 is used to set up the calling arguments aliases for the procedure. The procedure begins by computing the set x i of variables that may be aliased to non ground variables occurring in each call argument l i . These ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....has the following important properties: i) only call sites contribute to the creation of aliases, and (ii) an alias relation valid at the entry of a procedure holds throughout its body. Effective techniques for computing such aliases have been developed and described [Bar78, Ban79, Mye81, Coo85, CK89] Most of these analyses collect the alias information in two passes over the program: i) an introductory pass to compute all the obvious aliases generated at call sites, ii) a propagation pass to propagate the aliases through the call graph of the program. Early work on pointer aliasing ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, Austin, Texas, January 11--13, 1989. ACM SIGACT and SIGPLAN.
....a particular name at a program point t are all other names that refer to the same memory location on some path to t. When this execution path traverses more than one procedure, we are solving the Interprocedural May Alias Problem. Although the calculation of aliases for FORTRAN is well understood [Ban79, Coo85, CK89, Mye81], we show that general pointers added as a language construct cause the problem of computing aliases to become NP hard, a situation for which no good approximation algorithms exist. Moreover, aliases complicate most data flow analysis problems, and the absence of good alias information can prevent ....
....program. To avoid this problem, later algorithms, including our algorithm, compute alias pairs instead of alias sets, because the number of alias pairs is polynomial in the number of variables in the program. Some precise polynomial time algorithms for finding aliases 16 in FORTRAN programs are [Ban79, Bur90, Coo85, CK89]. MR91] presents an incremental algorithm for finding aliases in the presence of call by reference parameters. This work is noteworthy because it uses a mechanism similar to our assumed alias in Chapter 4.2.3, but instead of assuming an alias at entry of a procedure, they assume an alias at the ....
[Article contains additional citation context not shown here]
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989. 252
.... has extended this loop parallelization to including loops containing function calls, and loop restructuring for memory locality [6] 38] The interprocedural analysis necessary for parallelizing Id97 is based on Banning s interprocedural alias analysis [15] and Cooper and Kennedy s advances [19] [20] on Banning s original algorithms. 1.4.5 Related multithreading run time systems The thread representation and scheduling work is a direct descendant of TAM [25] P RISC [56] 18] and Cilk [37] 16] 46] It is also closely related to Lazy Task Creation [52] and Lazy Threads [35] 34] ....
....written by a node is called the mod set. This analysis must trace objects through function calls, conditionals and loops, and resolve aliasing which could arise from either parameter passing or return values. Our interprocedural sideeffect analysis is based on Cooper and Kennedy s [19] [20] refinement of Banning s original solution [15] to finding interprocedural side effects. Stage 6 uses the mod ref information to insert new data dependence arcs into the program graph. After this stage, any two nodes which do not have a dependence between them in the program graph may be executed ....
[Article contains additional citation context not shown here]
K. D. Cooper and K. Kennedy. Fast Interprocedural Alias Analysis. In POPL, pages 49--59, January 1989. http://softlib.rice.edu/MSCP/publications.html.
....for solving intraprocedural bit vector dataflow analysis problems. This approach was later applied to intraprocedural bi directional bit vector problems [31] Cooper and Kennedy used reachability to give efficient algorithms for interprocedural side effect analysis [9] and alias analysis [10]. The first uses of CFL reachability for program analysis were in 1988, in Callahan s work on flow sensitive side effect analysis [8] and Horwitz, Reps, and Binkley s work on interprocedural slicing [22, 23] Both papers use only limited forms of CFL reachability, namely various kinds of ....
K.D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In ACM Symposium on Principles of Programming Languages, pages 49--59, 1989.
....a name at a program point t are all other names that may refer to the same memory location on some execution path to t. When this execution path traverses more than one procedure, we are solving the Interprocedural May Alias Problem. While the calculation of aliases for FORTRAN is well understood [2, 6, 7, 17], if general pointers are added as a language construct, the problem of computing aliases becomes NP hard and no good approximation algorithms exist. Moreover, aliases complicate most data flow analysis problems, and the absence of alias information can prevent many optimizations. Comparison to ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
....its associated tool kit during the following development. Related work There is a great variety of papers dealing with specific problems of interprocedural DFA, as e.g. constant propagation [4, 5] partial redundancy elimination [6, 7, 8] interprocedural slicing [9] computing alias information [10, 11, 12, 13, 14, 15, 16, 17], or information whether a particular variable is used, modified or preserved by a procedure [18, 19, 20, 21] On the other hand, e.g. Cousot Cousot [22] Barth [23, 24] Sharir Pnueli [25] Jones and Muchnick [26] and more recently Bourdoncle [27] considered unifying approaches aiming at a ....
....functions for the tool kit. The instantiated functions can then directly be fed into the computation tools of the tool kit. Following this approach, the specification of a DFA can be done relative to the aliasinformation computed in a preprocess using e.g. one of the algorithms reported in [10, 11, 12, 13, 14, 16, 17, 18, 19]. Of course, the preciseness of the resulting interprocedural analysis depends on the preciseness of the computed alias information, but this is an orthogonal issue. In the remainder of the paper we assume that for every variable v and procedure G of the program under consideration MstAliases G ....
K. D. Cooper and K. W. Kennedy. Fast interprocedural alias analysis. In Conference Record of the 16 th ACM Symposium on Principles of Programming Languages (POPL'89), pages 49 -- 59, Austin, Texas, 1989.
.... SolveViaTabulation(G # IP ) begin [1] Let (N # , E # , C # ) G # IP [2] PathEdge : 3] SummaryEdge : 4] WorkList : 5] for each (s main , c) C # do [6] Insert ( s main , c) s main , c) into PathEdge [7] Insert ( s main , c) s main , c) into WorkList [8] od [9] ForwardTabulateSLRPs(WorkList) 10] for each n N do [11] X n : d 2 D fg(n) d 1 (D fg(n) L ) such that ( s fg(n) d 1 ) n, d 2 ) PathEdge [12] od end procedure Propagate(EdgeSet, e,WorkList) begin [13] if e EdgeSet then Insert e into EdgeSet; Insert e into WorkList ....
.... been determined by SolveViaTabulation [5] for m N (Start Exit Call Ret) do [6] X m : d D fg(m) c such that ( s main , c) m, d) RealizablePath [7] od end function Compress(G # IP ) returns exploded super graph begin [8] Let (N # , E # , C # ) G # IP [9] CompressedEdges : 10] WorkList : 11] for each p 0, k and d (D p L) do [12] Insert ( s p , d) s p , d) into CompressedEdges; Insert ( s p , d) s p , d) into WorkList [13] for each m Ret p do [14] Insert ( m, d) m, d) into CompressedEdges; Insert ( m, d) m, d) ....
[Article contains additional citation context not shown here]
Cooper,K.D. and Kennedy,K., "Fast interprocedural alias analysis,"pp. 49-59 in Conference Recordofthe Sixteenth ACM Symposium on Principles of Programming Languages, (Austin, TX, Jan. 11-13, 1989), ACM, NewYork, NY (1989).
....which are created by passing globals and formals as actuals, and Type II are formalformal aliases which are created by passing the same local, formal or global in more than one position at a call site. Much of the original work we draw upon was performed by Keith Cooper at Rice [Coo85, CK88, CK86] The analysis uses two data structures which are built on top of the call graph. The algorithm for computing the formal global binding graph, fi, is initialized by examining all call sites in all procedures. Where a formal is bound to a global it adds a node to fi, and places the global in the ....
Keith D. Cooper and Ken Kennedy. Fast interprocedural alias analysis. In Proceedings of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 29--41, February 1986.
....been described for link time code optimization [5, 15, 16, 27, 30, 31, 33] to the best of our knowledge, any alias analysis carried out by these systems is limited to fairly simple local analyses. There is an extensive body of work on pointer alias analysis of various kinds (see, for example, [3, 4, 6, 9, 11, 12, 13, 14, 18, 19, 21, 22, 23, 24, 26, 28, 29, 32, 34, 35]) The work most closely related to ours is that of Wilson and Lam [35] who describe a low level pointer alias analysis for C programs. Their work attempts to deal with nasty features of real programs and can handle simple pointer increments and decrements, but is unable to cope with the more ....
K. D. Cooper and K. Kennedy, "Fast Interprocedural Alias Analysis", Proc. 16th ACM Symposium on Principles of Programming Languages, Jan. 1989, pp. 49--59.
....and applies the idea of elimination to information propagation on the reduced graph. Interprocedural modification side effect analysis (i.e. MOD) finds the set of variables in a program whose values can be affected by the execution of an individual statement in the program. Cooper and Kennedy [CK87, CK89] decomposed the MOD problem for FORTRAN like languages into side effects on global variables and side effects induced by parameter passing. Based on the decomposition, they proposed an efficient flow insensitive 1 algorithm for the problem. However, in the presence of general purpose pointers, as ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49-59, January 1989.
....code at that node [ASU86] The May Alias problem for Fortran is interprocedural; its solution for a procedure lists pairs of variables which refer to the same storage location during some execution of that procedure. May Alias is used in the solution of the Modification Side Effects problem, MOD) [Ban79, Bur90, CK87, CK89]. Data flow problems can be uniformly represented by a lattice theoretic model termed a data flow framework, which formally defines a lattice of solution values for the problem, a function space of functions that describe the semantic effect of traversing a node or edge in the flow graph, and the ....
....don t explicitly appear in a value setting statement may still suffer side effects from the 3 This will be represented as S: statement. There are solutions for this problem for languages like Fortran where call by reference parameter passing methods are the only sources for dynamic aliasing [CK89]. These are formulated on the call multigraph representing possible procedure calls in a program. Algorithms for Fortran May Alias depend on the following observations: Alias Introduction: There are specific constructs a program that introduce aliases: 1. A single variable occurs in more than one ....
[Article contains additional citation context not shown here]
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59, January 1989.
.... Recompilation analysis was incorporated to minimize the need for recompilation as a result of changes to interprocedural information [CKT86b] BCKT90] Also, new algorithms were developed for interprocedural constant propagation [CCKT86] nearly linear side effect and aliasing analysis [CK88b] CK89] and array side effect analysis [CK88a] HK91] This earlier work provided a good framework for the research in this dissertation. One aspect that was lacking in the previous design was adequate support for interprocedural transformations such as inlining and cloning. Based on the previous ....
....The algorithm is more efficient than previous techniques because it delays propagation of new information until it can be used. It is based on the binding multigraph fi, a structure used in the formulation of effectively linear interprocedural analysis algorithms by Cooper and Kennedy [CK88b] CK89] fi is a specialized call multigraph, containing a node for each formal parameter in the program, and an edge between nodes f i p and f j q if the i th formal parameter of p is passed as the j th actual parameter of q at some call site in p invoking q. Thus, fi explicitly represents the ....
[Article contains additional citation context not shown here]
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual Symposium on Principles of Programming Languages. ACM, January 1989.
....where assigned to object is passed as an argument to the method, the corresponding formal argument is in the set MOD(m) and m is returning a new instance through a return variable is not allowed by the safety analysis. By using a more precise alias analysis similar to that of Cooper and Kennedy [29], it would be possible to allow more objects to be inlined. However, the alias analysis would 33 have to be augmented to produce something akin to the must alias information [9] If a must alias b, then a can be object inlined if and only if b is object inlined. We can note a future research ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth ACM Symposium on the Principles of Programming Languages, January 1989.
.... compilers, optimization Additional Keywords and Phrases: inline substitution, interprocedural analysis, interprocedural optimization 1 Introduction In recent years, many articles dealing with issues of interprocedural analysis and interprocedural optimization have appeared in the literature [1, 2, 5, 6, 7, 10, 12, 14, 17, 18, 19, 20, 21]. Several of these articles have attempted to assess the practical value of interprocedural data flow information or of specific cross procedural transformations. Ganapathi and Richardson point out that inline substitution can be viewed as an upper limit on the improvement available through use of ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59. ACM, Jan. 1989. 8
....It must use the results of this analysis to transform the program into a form where it is more amenable to efficient execution on the target system. Interprocedural analysis. Algorithms for performing data flow analysis across whole programs are both readily available and well understood [5, 7, 8, 10]. These techniques are beginning to appear in commercial systems [25] Perhaps less well appreciated are the limitations of this kind of analysis, the role that it can play in code optimization, and the rational consequences of that role. Interprocedural data flow analysis is a technique for ....
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49--59. ACM, Jan. 1989.
....run time. Because it uses a formulation of the problem that ignores control flow within a procedure, the analysis may include some alias pairs that do not really occur at run time. The ALIAS computation is formulated as a set of simultaneous equations posed over the call graph and its derivatives [32]. Constant propagation. Interprocedural constant propagation tags each procedure p in the call graph with a set CONSTANTS that contains (name, value) pairs. Each pair asserts that name contains value on entry to the procedure, along all paths leading to an invocation of p. Additionally, it tags ....
K. D. Cooper and K. Kennedy, "Fast interprocedural alias analysis," in Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Jan. 1989.
....to call graph add hd; f 4 i to Worklist (2b) add hb; f 3 i to Worklist (2a) Figure 2 Steps of algorithm for example program. represents the maximum number of procedure valued parameters for any procedure. We assume c p is bounded by a small constant, consistent with assumptions made in other work [5, 6]. 5.1 Correctness Lemma 1 The algorithm Build terminates after no more than c p EP iterations of the while loop. Proof. Each iteration of the while loop removes a pair from Worklist. Each addition to Worklist represents the propagation of a new binding of a formal procedure parameter along a ....
Cooper, K.D. and Kennedy, K. Fast interprocedural alias analysis. In Conference Record of the Sixteenth Annual Symposium on Principles of Programming Languages, pages 49--59. ACM, January 1989.
No context found.
K. D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Conference Record of the 16th Annual ACM Symposium on Principles of Programming Languages (POPL'89), pages 49--59, January 1989.
No context found.
Cooper, K.D. and Kennedy, K., "Fast interprocedural alias analysis," pp. 49-59 in Conference Record of the Sixteenth ACM Symposium on Principles of Programming Languages, (Austin, TX, January 11-13, 1989), (January 1989).
No context found.
K.D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In ACM Symposium on Principles of Programming Languages, pages 49--59, 1989.
No context found.
K. D. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Symposium on Principles of Programming Languages, pages 49-59, 1989.
No context found.
K. D. Cooper and K. Kennedy, `Fast interprocedural alias analysis', Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, February 1989, pp. 49--59.
No context found.
Cooper89. Cooper, K.D. and Kennedy, K., Fast interprocedural alias analysis, pp. 49-59 in Conference Record of the Sixteenth ACM Symposium on Principles of Programming Languages, (Austin, TX, Jan. 11-13, 1989), ACM, New York, NY (1989).
No context found.
K. Cooper and K. Kennedy. Fast interprocedural alias analysis. In Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages, pp. 49-59, January 1989.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC