| J. P. Banning. An efficient way to find the side effects of procedure calls and aliases of variables. In Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages (POPL'79), pages 29--41, 1979. 81 |
....Data Flow Analysis Interprocedural data flow analysis can be described as either flow insensitive or flow sensitive. Flowinsensitive analysis calculates data flow effects at program locations without considering the control flow paths that will be taken through individual procedures [4]. In contrast, flow sensitive analysis derives the effects common to each distinct control flow path that reaches a location [45] We use several flow insensitive data flow problems as examples throughout the paper: MoP(c) the set of variables that may be modified as a result of procedure call ....
.... distinct control flow path that reaches a location [45] We use several flow insensitive data flow problems as examples throughout the paper: MoP(c) the set of variables that may be modified as a result of procedure call c, either by the called procedure or its descendants in the call graph [4]. REr(c) the set of variables that may be referenced as a result of a procedure call c [4] ALIAS(p) the set of variable pairs that may refer to the same memory location in procedure p, resulting from Fortran s call by reference parameter passing mechanism [4] CONSTANTS(p) the set of ....
[Article contains additional citation context not shown here]
Banning, J.P. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the Sixth Annual Symposium on Principles of Programming Languages, pages 29-41. ACM, Jan. 1979.
....dependences, privatizable scalars and opportunities for scalar reduction transformations. In the SUIF system, all operate interprocedurally. 2.3.1. 1 Scalar Dependences To detect scalar dependences we use a simple flow insensitive mod ref analysis over the interprocedural region nesting graph [12]. For each region r corresponding to a loop, it computes the sets of scalar variables that may be modified or referenced by the loop, Modr and Reft , respectively. The variables in (Modr N Reft ) induce a scalar dependence. As a useful byproduct, the analysis computes Modr and Reft for every other ....
J.P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the Sixth Annual Symposium on Principles of Programming Languages. ACM, January 1979.
....S and an iterator variable I is in MayMod(Q) iff the execution of Q may modify the collection underlying the iterator I via iterator I, assuming that there are no aliases between any of the formal parameters. The information MayMod(Q) is very similar to the quantity DMOD defined by Banning [3] and can be computed very efficiently [8] The intraprocedural SCMP algorithm can now be extended to analyze a procedure P, utilizing only the summary information for any procedure that P calls. In particular, assume that MayMod(Q)is FC1 , FC i , FI1 , FI j , where every FCx is of ....
J. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proc. ACM Symp. on Principles of Programming Languages, pages 29--41, NewYork, NY, 1979. ACM Press.
....specification for all iterations. 4.5.2 Alias Analysis Alias analysis is a crucial component of any optimizer because aliasing increases the likelihood that a side effect will foil an optimization. Much work on alias analysis has been restricted to languages that do not allow pointers [3, 10] or that restrict pointers to at most one level of indirection [43] Some exceptions are [7, 29, 33] which use interprocedural analysis. The alias analysis techniques in [7, 29, 33] annotate each edge in a FG with a summary graph approximating the data structures at that point in the program. ....
J. P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the 1979.
....The goal of alias analysis is to determine the set of alias pairs that can hold at a given point in a program. Using alias pairs is an unfortunate consequence of thinking of pointer analysis in terms of the framework used to analyze aliases in FORTRAN caused by call by reference parameters[2]. Formal parameters in a call by reference language are not equivalent to memory locations. They are alternative names given to memory locations within a function. In this situation, alias pairs are the correct information to gather. In C, however, the situation is somewhat different. If we ignore ....
....based on the call site. PL could be extended to handle stores better. This was not done in order to show the core of PL. For regions modeling a scalar variable, we know that an explicit store to them will kill old values. This could be struct inner int a; int b; struct outer struct inner c[2]; struct inner d; main(int argc, char argv) struct outer g; a= int ) malloc(sizeof(int) int p,a; p= a; main s function regions global regions .p he ap 1 g.c ] g.d.a heap2 [ g.d.b Figure 12 Program with eight regions 15 modeled in PL with a special store ....
[Article contains additional citation context not shown here]
J. P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. Conference Record of the 3'ixth Annual ACM 3'ymposium on Principles of Programming Languages, pages 29 41, January 1979.
....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 ....
J. P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages. pages 29--41, January 1979.
....interprocedural optimization focused on interprocedural analysis. This began with the description of an implementation in 1971 [Spi71] Other work attempted to accomodate unusual language features [Wei80] calculate more precise information [Ros79] Mye81] or produce information more efficiently [Ban79] The design in ParaScope draws heavily from Banning, who recognized that interprocedural side effect analysis can be separated from alias analysis with the results of side effect analysis updated to include the effects of aliasing. 13 Another early work on interprocedural optimization, the ....
....is known, mod and ref sets are updated to reflect this knowledge. This is because a variable is modified (referenced) if any of its aliases are modified (referenced) Side effect analysis and alias analysis are performed separately, with alias information added to the side effect information [Ban79] Recent algorithms have been proposed to calculate aliasing and interprocedural side effect information in time effectively linear in the size of the call multigraph [CK88b] CK89] However, currently in ParaScope, we use an iterative technique based on Banning s equations [Ban79] In addition ....
[Article contains additional citation context not shown here]
J. P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the Sixth Annual Symposium on Principles of Programming Languages. ACM, January 1979. 160
....into registers; all the references to the global are changed so that instead of referring to memory, they refer to the appropriate registers. Whole program analysis can be also used by the definition use and alias analysis filters in order to do simple interprocedural side effect analysis [Bann79]. As with any linker tool, several hurdles had to be overcome to make the MIRV linker function properly. In addition, because the linker operates on a high level source form, there are several additional issues that must be addressed. Global variables and functions are made to have unique names ....
....alias analysis implies that pointers passed in function calls result in the conservative assumption that anything reachable through the pointer is both used and defined in the callee. To mitigate the effects of function calls, the compiler performs a simplistic side effect analysis [Bann79] For each function, the compiler records which global objects may be used and defined in the function. Pointer arguments are assumed to point to any global object of compatible type. We have observed that this process opens up many more chances for promotion than would otherwise be possible. The ....
J.P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. Proc. Sixth POPL, Jan. 1979.
....TDB, Month Year. 14 Amer Diwan et al. 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 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 ....
....or evaluate alias analyses using more than static metrics. 9.1 Alias Analysis 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 [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 ....
[Article contains additional citation context not shown here]
BANNING, J. 1979. An efficient way to find side effects of procedure calls and aliases of variables. In Conference Record of the Sixth Annual ACM SIGACT/SIGPLAN Symposium on Principles of Programming Languages. San Antonio, Texas, 29--41.
....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 ....
J. P. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the Sixth Annual Symposium on Principles of Programming Languages, pages 29--41. ACM Press, 1979.
....other entity in the program. In practice, tools that compute call graphs that fall into different parts of this spectrum. Compilers place one set of requirements on call graphs. 2 The most conspicuous requirement is that 1 Call graphs are sometimes treated not as relations but as multigraphs [1, 2, 4, 6, 7, 12, 15]. 2 Call graphs have been used for interprocedural analysis and optimization for over two decades [1] Early results constrained the programs for which call graphs could be computed. Ryder loosened some of these restrictions, considering limited forms of procedure parameters [17] Callahan et ....
....the algorithms used by inspecting the source of the tools is extremely difficult, since the algorithmic code is neither small nor isolated within the source. A search of the literature is not sufficient either: While many interprocedural data flow problems are based on a call multigraph [1, 2, 6, 7, 15] or a relation between pairs of procedures indicating possible call sequences [3] few authors discuss how it is constructed from the source program [4, p. 484] Inferring some algorithmic aspects, however, is feasible. Simple tests can be used, for instance, to determine whether or not tools ....
J.P. Banning. An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of Variables. In Conference Record of the 6th ACM Symposium on Principles of Programming Languages, pages 29--41. ACM Press, January 1979.
....it is reasonable to assume that variables local to the caller will not change. Such assumptions limit the extent that transfromations can be performed. Techniques are available to extract more detailed information: to determine parameter aliasing and effects of procedures on global variables, see [7, 8, 9, 19, 37, 42]; to determine pointer aliasing, see [14, 15, 27, 29, 33, 34, 44] When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directly. Sophisticated analysis, however, is ....
J. B. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. Conf. Rec. Sixth ACM Symp. on Principles of Programming Languages, pages 29--41, January 1979.
No context found.
J. P. Banning. An efficient way to find the side effects of procedure calls and aliases of variables. In Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages (POPL'79), pages 29--41, 1979. 81
No context found.
Banning, J.P., "An efficient way to find the side effects of procedure calls and the aliases of variables," pp. 29-41 in Conference Record of the Sixth ACM Symposium on Principles of Programming Languages, (San Antonio, TX, January 29-31, 1979), (January 1979).
No context found.
Banning, J.P., "An efficient way to find the side effects of procedure calls and the aliases of variables," pp. 29-41 in Conf. Rec. of the Sixth ACM Symp. on Princ. of Prog. Lang., (San Antonio, TX, Jan. 29-31, 1979), ACM, New York, NY (1979).
No context found.
Banning, J. P. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of 6th Annual Symposium on Principles of Programming Languages (1979), ACM, pp. 29--41.
No context found.
Banning, J. P. An efficient way to find the side effects of procedure calls and the aliases of variables. In Proceedings of the Sixth Annual ACM Symposium on Principles of Programming Languages (Jan. 1979), pp. 29--41.
No context found.
J. Banning, "An efficient way to find the side effects of procedure calls and the aliases of variables," in Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, pp. 29--41, January 1979.
No context found.
J. Banning, "An efficient way to find the side effects of procedure calls and the aliases of variables," in Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, pp. 29--41, January 1979.
No context found.
Banning, J.P., "An efficient way to find the side effects of procedure calls and the aliases of variables," pp. 29-41 in Conference Record of the Sixth ACM Symposium on Principles of Programming Languages, (San Antonio, TX, January 29-31, 1979), (January 1979).
No context found.
J. Banning. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the Sixth Annual ACM Symposium on Principles of Programming Languages, pages 29--41, January 1979.
No context found.
J. B. Banning, `An efficient way to find the side effects of procedure calls and the aliases of variables', Proceedings of the Sixth Annual ACM Symposium on Principles of Programming Languages, January 1979, pp. 29--41.
No context found.
J. Banning, "An Efficient Way to find the Side effects of procedure calls and the aliases of variables". In the proceeding of the Sixth Annual ACM Symposium on the Principles of Programming Languages. pp 29-41. January 1979.
No context found.
Banning79. Banning, J.P., An efficient way to find the side effects of procedure calls and the aliases of variables, pp. 29-41 in Conference Record of the Sixth ACM Symposium on Principles of Programming Languages, (San Antonio, TX, Jan. 29-31, 1979), ACM, New York, NY (1979).
No context found.
Banning79. Banning, J.P., An efficient way to find the side effects of procedure calls and the aliases of variables, pp. 29-41 in Conference Record of the Sixth ACM Symposium on Principles of Programming Languages, (San Antonio, TX, Jan. 29-31, 1979), ACM, New York, NY (1979).
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