| Amer Diwan, Eliot Moss, and Kathryn McKinley. Simple and Effective Analysis of Statically-typed Object-Oriented Programs. In OOPSLA'96 Conference Proceedings, San Jose, CA, October 1996. |
....of the approximate calling structure of the program. Although the successful experiments performed on programs written in a subset of C showed excellent precision of the reference solution obtained, there were scalability problems with the approach. Whaley and Lam [48] and Diwan et. al [15] designed techniques that perform a flow sensitive analysis within each method, allowing kills in cases where an assignment is unambiguous. For example, an assignment p = q does allow the algorithm to reinitialize the set of objects to which p may point here only to those objects to which q may ....
....called k CFA, where k indicates the length of the call string maintained. The functional approach uses information about the state of computation at a call site to distinguish different call sites. Some reference analyses that solely use inheritance hierarchy information are context insensitive [15, 14, 4]; some later, more precise analyses are also context insensitive to ensure scalability (according to their authors) 15, 47, 45, 33, 23, 48] Other reference analyses use both the call string and functional notions of classical context sensitivity [38] Palsberg and Schwartzbach presented a ....
[Article contains additional citation context not shown here]
A. Diwan, J.Eliot B. Moss, and K. McKinley. Simple and effective analysis of staticallytyped object-oriented programs. In Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 292--305, 1996.
....resolving polymorphic method invocations in class based, statically typed, object oriented programming languages with method overriding semantics [1, 2] RTA is a flow and context insensitive whole program analysis. The basic idea of RTA is to prune the results of Class Hierarchy Analysis (CHA) [7, 8] with information about instantiation. This basic idea can be explained by analyzing the sample program listed in Figure 5. The program contains one polymorphic invocation, s.draw( in the Main: foo(Shape) method. The purpose of call graph construction techniques such as CHA and RTA is to ....
Amer Diwan, J. Eliot B. Moss, and Kathryn S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Coplien [6], pages 292-- 305.
....such criteria. to determine what are the classes of the objects that variable x may refer to at call site x.m( from this it is trivial to compute the RC and TM criteria for the call site. There is a large body of work on various class analyses with different tradeoffs between cost and precision [26, 1, 2, 28, 14, 5, 17, 13, 9, 29, 32, 34, 38, 35, 19, 31, 16, 23]. However, there has been no previous work on using these analyses for the purposes of testing of polymorphism. 1.3 Fragment Class Analysis The existing body of work on class analysis cannot be used directly to compute the RC and TM coverage requirements in a coverage tool. The key problem is ....
A. Diwan, J. B. Moss, and K. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 292--305, 1996.
....developed in the context of optimizing compilers. Class analysis computes a set of classes for each program variable r; this set approximates the classes of all run time objects that may be bound to r. There is a wide variety of existing class analyses with various degrees of cost and precision [17, 1, 2, 18, 9, 4, 11, 8, 6, 19, 21, 22, 23, 25, 15, 20, 10, 16]. These analyses can be used for ORD and ExtORD construction. More precise underlying class analyses result in fewer spurious dependences and therefore more precise ORDs and ExtORDs. For the set of statements in Figure 3, the set of possible classes of all objects that may be bound to variable xy ....
....the following question: given the diagram, what cycles should be removed so that the minimum number of stubs will need to be constructed. Our work concentrates on improving the precision of the ORD, which potentially leads to fewer dependence cycles. There are many existing class analyses [17, 1, 2, 18, 9, 4, 11, 8, 6, 19, 21, 22, 23, 25, 15, 20, 10, 16] that have been used in the context of optimizing compilers and software engineering tools for object oriented programming languages. Our work is the first one to investigate the use of these analyses for the purposes of ORD ExtORD construction. 6 Conclusions and Future Work We have shown how ....
A. Diwan, J. B. Moss, and K. McKinley. Simple and effective analysis of statically-typed objectoriented programs. In Conference on Object-Oriented pages 292--305, 1996.
....to use simple inlining of routines in the presence of dynamic binding. This effect is only aggravated by the fact that OO programming style effects many small routines. A large body of research has been dedicated to the study of cost in time of dynamic binding and in efforts to minimize it. See [HCU91, DGC95, DMM96, PBF96, ZCC97] for some examples of the many works on the various aspects of the topic. It has been widely observed that a large portion of virtual function calls, if not most of them, are in fact monomorphic, i.e. that the class of the receiver in a particular call site was always the same at program run ....
....numbers in the range of 50 to 95 for some program according to some studies were observed for the ratio of monomorphic calls, both statically, as a fraction of the number of call sites, and dynamically, as a fraction of the number of actual calls (See, e.g. Fig. 2 5 in [BS96] andFig.13in[DMM96]) One of the most important research problems today in the area of implementation of OO languages is the efficient identification of monomorphic call sites. The computational complexity of this problem is the subject of this work. More specifically, we study a slightly more general variant known ....
[Article contains additional citation context not shown here]
Diwan,A.,MossJ.E.B.andK.S.McKinley,Simple and Effective Analysis of Statically-Typed Object-Oriented Programmes., OOPSLA'96, pp. 292-305.
.... an increasing focus on interprocedural optimizations in compilers for imperative and object oriented languages and with an increasing use of results of interprocedural program analysis in software development environments, the problem of call graph construction has received a significant attention [3, 5, 6, 10, 11, 13, 14, 18, 23, 22, 24, 25, 27, 29, 28, 30, 31, 33]. A call graph is a static representation of dynamic invocation relationships between procedures (or functions or methods) in a program. A node in this directed graph represents a procedure and an edge (p q) exists if the procedure p can invoke the procedure q [2] In objectoriented languages, a ....
....is crucial for the results of interprocedural analysis. Therefore, call graph construction or dynamic call site This research was supported by NSF CAREER award ACI 9733520 and NSF grant CCR 9808522. 1 resolution has been a focus of attention lately in the object oriented compilation community [3, 6, 10, 11, 13, 22, 24, 30, 31]. A common characteristic, however, of all the work in this area has been that they perform exhaustive analysis, i.e. given a code, they compute the set of procedures that can be called at each of the call sites in the entire code. We believe that with an increasing popularity of just in time or ....
[Article contains additional citation context not shown here]
Amer Diwan, J. Elliot Moss, and K. Mckinley. Simple and effective analysis of statically typed object-oriented programs. In Eleventh Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '96), pages 292--305, October 1996.
....analysis, we would have preferred to start with a conservative solution and then add further elements. However, this is not feasibly while performing demand analysis, because of the way the initial conservative call graph is constructed. The previous work in the area of call graph construction [2, 3, 4, 7, 8, 10, 11, 12, 15, 19, 18, 20, 21, 23, 25, 24, 26] has only focussed on exhaustive analysis and has not considered demand driven analysis. Similarly, the previous work in the area of demanddriven data flow analysis [9, 14] has assumed that a complete call graph has already been constructed before initiating the demand driven analysis. 6 ....
Amer Diwan, J. Elliot Moss, and K. Mckinley. Simple and effective analysis of statically typed objectoriented programs. In Eleventh Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '96), pages 292--305, October 1996.
....the method entry, a call node, or a catch node) the analysis uses the conservativeapproximation approach, and includes in the solution all subtypes of the relevant exception type. The intraprocedural flow sensitive analysis is similar to the intraprocedural type propagation described in Reference [36]. The third approach, similar to rapid type analysis [37] is an interprocedural flow insensitive analysis: it starts with the conservative approximation, and refines that approximation by examining object creation sites and return types of all library calls. The refined approximation contains ....
A. Diwan, J. E. B. Moss, and K. S. McKinley, "Simple and effective analysis of statically-typed object-oriented programs," in Proceedings of the 11th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 1996, pp. 292--305.
....reduce object size. ffl Creation and destruction of objects requires less time, due to reduced object size. Time requirements may also be reduced through caching paging effects. ffl Specialization may create new opportunities for existing optimizations such as virtual function call resolution [4, 9, 3, 8, 5]. To appear in the proceedings of the 12th Annual ACM Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 97) October 5 8 1997, Atlanta, GA. ffl Specialization may be of use in program understanding and debugging tools. For example, specialization can be ....
DIWAN, A., MOSS, J. E. B., AND MCKINLEY, K. S. Simple and effective analysis of statically-typed object-oriented programs. In Proceedings of the Eleventh Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'96) (San Jose, CA, 1996), pp. 292--305. SIGPLAN Notices 31(10).
....of the dataflow analysis. Keywords: Abstract interpretation, class analysis, object oriented languages, domain theory, semantics. 1 Introduction Class analysis, one of the most important analyses for object oriented languages, computes the set of classes that an expression can have at run time [1, 2, 10 12]. This information has several uses. It provides type safety by guaranteeing that methods are only invoked on objects that implement such a method and in certain cases it allows to optimise virtual method invocations into direct calls to the code implementing the method. Furthermore, it is used ....
....are obtained by abstract interpretation of these operations. This approach allows to make the following three contributions: The first contribution consists in defining three abstractions of the above algebra, namely, three domains for class analysis which use the same abstract information as [2] [10] and [11] respectively. In this way we obtain formal reconstructions of these analyses in a common framework. The second contribution is the use of abstract interpretation to derive optimal (and hence correct) abstract operations for our three domains. Note that only the analysis in [11] has been ....
[Article contains additional citation context not shown here]
A. Diwan, J. E. B. Moss, and K. S. McKinley. Simple and Effective Analysis of Statically Typed Object-Oriented Programs. In Proc. of OOPSLA'96, volume 31(10) of ACM SIGPLAN Notices, pages 292--305, New York, 1996. ACM Press.
....on k. Therefore, 1] uses adaptive type inference, where templates are generated only when it seems to be more useful. A similar technique is used in [5] Finally, there exists a technique based on a intra interprocedural type propagation (IITP) based on a data flow analysis of the program [3]. Since the notion of program point is well modelled by data flow analyses, this technique computes precisely the set S 1 . However, data flow information is traced only for the variables of the program, the fields of the objects being approximated as in HA. Thus, this technique cannot handle ....
....analysis. All the analyses we have described have been meant as a black box like algorithm. As a consequence, we cannot formally compare them w.r.t. precision or efficiency. We must run them on a set of benchmarks, with no guarantee of obtaining a clear comparison. Finally, only the technique in [3] deals explicitely with program points. Information about program points allows to apply local, stronger arguments in every point of the program. ....
Amer Diwan, J. E. B. Moss, and K. S. McKinley. Simple and Effective Analysis of Statically Typed Object-oriented Programs. In Proc. of OOPSLA '96, volume 31(10) of ACM SIGPLAN Notices, pages 292--305, New York, October 1996. ACM Press.
....graph is formed and decomposed into SCC s. The following phases are performed using the SCC condensation (SCC DAG) ffl Phase 0: In this phase, RCI constructs a safe overestimate of the call graph called the initial call graph by resolving dynamically dispatched calls using hierarchy analysis [DMM96] 4 Then RCI uses a linear time algorithm[CLR92] to construct the SCC DAG of the initial call graph. Note that the initial call graph need not be precise, it only needs to be a safe overestimate; the precision of any safe initial call graph only affects the efficiency of RCI, and not the safety ....
....Concrete type inference and call graph construction for object oriented languages are subsumed by our analysis. There are many non modular whole program analysis approaches for these two problems. Most use constraint based analysis [Suz81, PS91, PC94, Age95, GDDC97, DGC98] but a few [CHS95, PR96, DMM96] are data flow based. Both [CHS95, PR96] are flow and context sensitive algorithms for C ; we have compared our empirical results with those in [PR96] which were non scalable. No implementation is reported in [CHS95] DMM96] presents different type analysis techniques for Modula 3, ....
[Article contains additional citation context not shown here]
Amer Diwan, J.Eliot B. Moss, and Kathryn S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, 1996.
....to the requirements of the particular implementation. 3.2 Creating New Objects Type propagation of objects in a statically typed language requires that the declared type of each object be available. This is the starting point for most optimizations based on static type analysis and propagation [DMM96] Therefore object creation instructions need to be represented as a highlevel construct in the intermediate code. 3.3 Method Invocation Method invocation constructs are necessary as they are the primary targets of optimization in objectoriented languages. In case of execution using the JIT API ....
Amer Diwan, J. Eliot B. Moss, and Kathryn S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In OOPSLA '96, 1996.
....compr NTCFM jess NTCFM cst NTCFM db NTCFM si NTCFM javac NTCFM mpeg NTCFM richards NTCFM mtrt NTCFM jack NTCFM tsgp NTCFM jlex Figure 19: Dynamic Counts of Virtual and Interface Calls store inputs and relax dependences when we can prove there are no aliases. Diwan et al. [20] proposes the use of aggregate analysis to detect when a polymorphic data structure is used in a monomorphic way by looking at the types of all assignments to a particular field. For example, the analysis is used to show that a linked list of general objects actually contains only objects of a ....
A. Diwan, J. E. B. Moss, and K. S. McKinley. Simple and Effective Analysis of Statically-Typed Object-Oriented Programs. In 1996 ACM SIGPLAN Conference on ObjectOriented Programming Systems, Languages, and Applications, Nov. 1996.
....s.draw( invocation could not actually branch there: there is no code to branch to. This is a somewhat less than desirable solution for re engineering tasks that require a reasonably accurate call graph, such as automatic clustering. 3. 2 Class Hierarchy Analysis Class Hierarchy Analysis (CHA) [4, 5] is a whole program analysis that determines the actual and implementing types for each method invocation based on the type structure of the program. The whole program is not always available for analysis, due to features such as reflection and remote method invocation. However, for many practical ....
A. Diwan, J. E. B. Moss, and K. S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Proceedings of OOPSLA, pages 292--305, 1996.
....between method invocations Figure 2.2 Instruction distribution between method invocations on the SPARC for M2toM3 There are two ways to improve the control flow information in the compiler. First, program analysis may reduce the set of possible procedures called at each method invocation [1, 13, 7, 15, 19, 32, 39, 47, 82, 85, 86, 84, 83] . This analysis is effective only on monomorphic method invocations. Second, a program may be transformed so that the performance critical method invocations can be converted to direct calls. An example is splitting, which duplicates code to reduce the number of types possible at each method ....
Diwan, A., Moss, E., and McKinley, K. Simple and effective analysis of statically typed object-oriented programs. In Proceedings of the ACM SIGPLAN '96 Conference on Object-Oriented Programming Systems, Languages, and Applications, San Jose, CA, Oct. 1996.
....was also supported by the Air Force Materiel Command and ARPA award number: F30602 95 C 0098. Any opinions, findings, and conclusions or recommendations expressed in this material are the authors and do not necessarily reflect those of the sponsors. Portions of this paper appeared previously [Diwan et al. 1996; Diwan et al. 1998] 2 Amer Diwan et al. languages, it is typically not a significant cost. However for all object oriented languages, method invocations inhibit optimization. If analysis can resolve method invocations to direct calls, the compiler can replace the method invocation with a ....
....and Eustace 1994] a binary rewriting tool for the Alpha. We instrument every load in an executable, recording its address and value. If the most recent previous load of an address is redundant with the current load, we mark it as redundant. We describe this process in more detail elsewhere [Diwan 1996]. In Figure 10, the bars labeled Redundant originally give the fraction of heap references (loads) that are redundant in the original program and the bars labeled Redundant after optimizations give the fraction of heap references that are redundant after TFM TBAA and RLE (this fraction is ....
[Article contains additional citation context not shown here]
DIWAN, A., MOSS, E., AND MCKINLEY, K. S. 1996. Simple and effective analysis of statically typed objectoriented programs. In Proceedings of the ACM SIGPLAN '96 Conference on Object-Oriented Programming Systems, Languages, and Applications. San Jose, CA.
No context found.
Amer Diwan, Eliot Moss, and Kathryn McKinley. Simple and Effective Analysis of Statically-typed Object-Oriented Programs. In OOPSLA'96 Conference Proceedings, San Jose, CA, October 1996.
No context found.
Amer Diwan, J. Eliot Moss, and Kathryn S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 292-- 305, October 1996.
No context found.
A. Diwan, J. E. Moss, and K. S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Languages, and Applications, pages 292--305, Oct. 1996.
No context found.
Amer Diwan, J. Eliot Moss, and Kathryn McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Proc. of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pages 292--305. ACM Press, 1996.
No context found.
Amer Diwan, J. Eliot B. Moss, and Kathryn S. McKinley. Simple and effective analysis of statically typed object-oriented programs. In OOPSLA '96: 11th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, volume 31, pages 292--305. ACM Press, 1996.
No context found.
A. Diwan, J. E. Moss, and K. S. McKinley. Simple and effective analysis of statically-typed object-oriented programs. In Languages, and Applications, pages 292--305, Oct. 1996.
No context found.
DIWAN,A.,MOSS,J.E.B.,AND MCKINLEY, K. S. 1996. Simple and effective analysis of statically-typed object-oriented programs. See OOPSLA'96 [1996], 292--305.
No context found.
Amer Diwan, Eliot Moss, and Kathryn McKinley. Simple and Effective Analysis of Statically-typed ObjectOriented Programs. In OOPSLA'96 Conference Proceedings, San Jose, CA, October 1996.
First 50 documents
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