| Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993. |
....language; analysis lattice must be finite. There seems to be no provision for context sensitivity. The McCat system, by Hendren, et al. is an interprocedural analysis framework for C, which does not provide analysis solvers but a program representation over which solution can be reached [58]. The analyses built on the program representation will be context sensitive, in that the call graph representation is expanded by a given call graph builder to an instantiation graph, in which every nonrecursive call chain is distinguished; the result is similar to a program which is fully ....
L. J. Hendren, M. Emami, R. Ghiya, and C. Verbrugge. A practical context- sensitive interprocedural analysis framework for c. ACAPS Technica Memo 72, McGill University School of Computer Science, July 1993.
....node that is connected (through a tunneling value connection) to the right dependence region. 9. RELATED WORK A number of analysis frameworks have been developed for making intra and interprocedural analyses easier to write and reason about, including Sharlit [26] SPARE [27] FIAT [17] McCAT [19], System Z [33] PAG [2] the k tuple dataflow analysis framework [22] and Dwyer and Clarke s system [15] However, none of these systems address integrating transformations with analyses, nor automatically combining analyses profitably. Nelson and Oppen [23] describe how under certain ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural analysis framework for c compilers. Technical Report ACAPS Technical Memo 72, McGill University School of Computer Science, July 1993.
....the may definitions of an assignment in static program slicing or to verify the independence of two pointer references to enable an optimization. Precise pointer analysis is computationally difficult [LH88, LR92] The high cost of flow sensitive approaches [Wei80, JM81, JM82, CWZ90, HN90, LR92, HEGV93] has led to the development of flow insensitive techniques [Ste96, And94, SH97] which are often nearly as precise for a fraction of the cost [HP98] Shape analysis is a static analysis that infers properties of pointer structures that could be used by programmers as invariants. In particular, ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
....of two pointer references to enable an optimization or to compute may definitions of a pointer assignment in static program slicing. Precise pointer analysis is computationally difficult [LH88, LR92] Although a number of flow sensitive approaches exist [Wei80, JM81, JM82, CWZ90, HN90, LR92, HEGV93] their high cost has led to examination of flowinsensitive techniques [Ste96, And94, SH97] since they have been found to be nearly as precise for a fraction of the cost [HP98] Since efficient and precise pointer analysis is still beyond the state of the art [CWZ90, LR92, WL95] some pointer ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
.... for managing information flowing through the program representation, for reaching fixpoint in the presence of loops, and so on, and it is common to develop reusable dataflow analysis frameworks or generators that encapsulate the recurring mechanisms [Tjiang Hennessy 92, Hall et al. 93, Hendren et al. 93, Yi Harrison 93, Alt Martin 95, Dwyer Clarke 96, Assmann 96, Adl Tabatbai et al. 96] A client dataflow analysis is implemented simply by instantiating or parameterizing the generic framework with the particulars of that analysis. We have designed, implemented, and used a framework for ....
....an analysis specific abstraction of the procedure to save memory and perhaps analysis time, at the cost of extra representation translation time and complexity for any particular compiler. The McCAT optimizing C compiler includes a framework for context sensitive interprocedural analyses [Hendren et al. 93] This framework does not manage dataflow information or help in reaching fixpoints, but only provides the basic program representation and the program call graph over which clients write their analyses manually. McCAT includes a particular strategy for constructing a context sensitive call ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A Practical Context-Sensitive Interprocedural Analysis Framework for C Compilers. Technical Report ACAPS Technical Memo 72, McGill University School of COmputer Science, July 1993.
....to account for. Additionally, information about pointers is easy to reflect in the graph (by short circuiting (Figure 4) store splitting [SW93, Ste94b] and other transformations) making it immediately available to all analyses. 3. 2 Pointer analysis VDGomatic makes use of a points to analysis [CWZ90, HEGV93, Ruf94b], which indicates the possible values for each location valued expression. In our representation a points to analysis is more natural than an alias analysis, which produces a set of possible alias pairs. In the worst case, 22 Update Update Update store store 253 Lookup x y 2 22 Update ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical contextsensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
....SIMPLE decorated with points to information and reaching definition information. The important points relevant for our topic are briefly described in Sections 2.1 and 2.2. A complete presentation of the points to analysis and reaching definition analysis is discussed elsewhere [Ema93, Sri92, HR39] Given the decorated SIMPLE representation, the next step is the support analysis for dependence testing, which is the main topic of this paper. This analysis takes advantage of the simpli cation phase, the reaching de nition information and the points to information. Simplify and Restructuring ....
M. Verbrugge C. Hendren, Emami and Ghiya R. A practical context-sensitive interprocedural analysis framework for c compilers. ACAPS Technical Memo 72, School of Computer Science, McGill University, July 1939.
....slice: drawing arrows and using colors. These techniques can be distracting, however, and usually provide more information than desired. 4 Slicing with pointers and aggregate values In order to effectively slice code containing pointer operations, our slicing algorithm uses a points to analysis [HEGV93, EGH93] which indicates the possible values for each location valued construct in the program. Variable references and pointer dereferences are represented in the VDG by lookup nodes, which take two arguments a location and a store and return the contents of the location in the store. Update ....
....the original program. The second technique of Horwitz et al. gives a less precise slice but has a lower cost: if two variables can be aliased and a definition of one can reach a use of the other, then a dependence is added between them. By contrast to these techniques, we use a points to analysis [HEGV93, EGH93] and add support for aggregates such as C s struct and union types. Ottenstein and Ottenstein [OO83, OO84] and Tip [Tip94] note that compiler transformations can be of use to a slicer but give no details. Unlike their schemes, our optimizations are unconstrained by the syntax of the ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
....x,2 x,P) Simultaneously, the association of invisible variables b and c with symbolic names 1 x and 2 x is recorded in the invocation graph node currently under investigation, as map information. This contextsensitive information is used while unmapping and also by other interprocedural analyses [20]. Note that only the map information is context sensitive; the symbolic names themselves are used in a context free manner inside the procedures, by all analyses. However, any scheme to map invisible variables to symbolic names, should take into account the following observations: ffl An ....
....studying the use of points to information for providing more accurate dependence information for instruction scheduling. The complete invocation graph and mapping information provides a convenient basis for implementing other interprocedural analyses such as generalized constant propagation [20], and practical heap analysis [16] The important point here is that after pointsto analysis is completed one does not need to worry about function pointers or the correspondence between invisible variables and the calling context. All of this information has been stored by the points to analysis ....
[Article contains additional citation context not shown here]
L. J. Hendren, M. Emami, R. Ghiya, and C. Verbrugge. A practical context-sensitive interprocedural analysis framework for C compilers. ACAPS Technical Memo 72, School of Computer Science, McGill University, July 1993.
.... that calculates the points to relationships of variables on stack, enabling us to focus solely on the analysis of heap directed pointers, and (3) it provides a framework for general purpose context sensitive interprocedural analysis, that accurately handles recursion and function pointers [HEGV93, EGH94] We give a brief overview of the McCAT compiler in the first section. The next section focuses on the SIMPLE intermediate representation. In section 2.3, we briefly discuss the interaction of points to and heap analyses. The interprocedural analysis framework is described in section 2.4. ....
....summary of all possible calling contexts. To support this analysis strategy, it builds a framework for interprocedural analysis. Other context sensitive interprocedural analyses like heap analyses, are built on top of this framework. A complete description of the framework can be found in [Ema93, HEGV93, EGH94] In the following chapters, we specialize this framework for different heap analyses. Below, we briefly describe its salient features, which are of relevance for this purpose. 2.4.1 Representing Calling Contexts In general, a calling context depends on the invocation path followed by the ....
L. J. Hendren, M. Emami, R. Ghiya, and C. Verbrugge. A practical context-sensitive interprocedural analysis framework for C compilers. ACAPS Technical Memo 72, School of Computer Science, McGill University, Montr'eal, Qu'ebec, July 1993.
....(right arc) the name b in main corresponds to 1 x in incr. This mapping allows us to use one name within incr without losing the contextspecific information from each invocation site. A more detailed description of the interprocedural environment, including the invocation graph can be found in [HEGV93] Read write set analysis uses the points to information to calculate the locations read and written by each basic and compositional statement. 5 For the purposes of GCP, we only use the write sets calculated for procedure calls. Note that read write sets include all local, symbolic, and global ....
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural analysis framework for C compilers. ACAPS Tech. Memo 72, Sch. of Comp. Sci., McGill U., Montr'eal, Qu'e., Jul. 1993. In ftp://ftp-acaps.cs.mcgill.ca/pub/doc/memos.
....summary of all possible calling contexts. To support this analysis strategy, it builds a framework for interprocedural analysis. Other context sensitive interprocedural analyses like heap analyses, are built on top of this framework. A complete description of the framework can be found in [Ema93, HEGV93, EGH94] Below, we briefly describe its salient features. 2.4.1 Representing Calling Contexts In general, a calling context depends on the invocation path followed by the program, i.e. the chain of procedure invocations starting from main and ending with the procedure call under analysis. ....
L. J. Hendren, M. Emami, R. Ghiya, and C. Verbrugge. A practical context-sensitive interprocedural analysis framework for C compilers. ACAPS Technical Memo 72, School of Computer Science, McGill University, Montr'eal, Qu'ebec, July 1993.
....Section 2.2.3. Also note that we consider the loop condition as a simple assignment, when feasible. For example, when it involves a pointer equality test like (p = NULL) or (p = q) To accurately handle procedure calls, we use the interprocedural analysis framework built by points to analysis [6, 8, 14]. It provides us the complete invocation graph of the program which is constructed by a simple depth first traversal of the invocation structure of the program. Since the invocation structure is not known statically for recursive and indirect calls, they are handled in a special manner. Recursive ....
L. J. Hendren, M. Emami, R. Ghiya, and C. Verbrugge. A practical context-sensitive interprocedural analysis framework for C compilers. ACAPS Technical Memo 72, School of Computer Science, McGill University, July 1993.
No context found.
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
No context found.
Laurie J. Hendren, Maryam Emami, Rakesh Ghiya, and Clark Verbrugge. A practical context-sensitive interprocedural alias analysis framework for C compilers. ACAPS Technical Memo 72, McGill University School of Computer Science, Advanced Compilers, Architectures, and Parallel Systems Group, Montreal, Quebec, July 24, 1993.
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