| Jeffrey Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, November 1996. TR-96-11-05. |
....of object oriented languages. More specifically, class hierarchy analysis, customization and exhaustive class testing will be discussed. We present the overall picture and elaborate only on the properties needed to understand the discussions in the following sections. We refer the reader to [5, 2] for detailed descriptions of these techniques and a detailed report of the results. 2.1 Class Hierarchy Analysis Class hierarchy analysis tries to avoid dynamic dispatchcodebyproviding the compiler with the class hierarchy of the whole program. It is based on the observation that sometimes, when ....
....the elements of such quoted code blocks may be arbitrary tokens, intermixed with logic variables or compound terms. The following is an example of a quoted term, in Java like syntax. Note the variables and logic terms that occur inside the code. void foo( Array El contents = new El[5]# El anElement=contents.elementAt(1)# 253 The Representational Mapping. The representational mapping specifies how a program is represented in the logic language. This basically means that constructs of the base language are represented in the logic language bymeans of a set of logic ....
Jeffrey Adgate Dean. Whole Program Optimization of Object-OrientedLanguages. PhD thesis, UniversityofWashington, 1996.
....of JVM s stack. The most e#ective way of reducing the dynamic dispatch overhead based on the receiver type would be to eliminate the virtual method invocation and bind the call statically at compile time. Various static analysis techniques can be used to eliminate the virtual method invocations [12]. However, only a portion of the virtual calls can be eliminated due to the di#culty in deciding the call sites that can be safely bound statically. In this work, we focus on handling the calls that cannot be eliminated by these techniques. Dispatch Table Search (DTS) is the simplest technique to ....
J. A. Dean, Whole-Program Optimization of Object-Oriented Languages, Ph.D Thesis, University of Washington, 1996. 345
....compared with the output of a traditional ahead of time system. This is due both to the need to perform compilation quickly and also to the piecemeal fashion in which the compiler operates preventing optimizations that may require a whole program analysis such as Class Hierarchy Analysis (cha) Dean96] 57 Secondly, the time spent during compilation may be poorly scheduled within the execution of the application. For example, an interactive application may spend substantial periods of time blocked for user input and then when input is received spend time compiling the methods ....
Jeffrey Dean. Whole-Program Optimization of Object-Oriented Languages. Technical Report TR-96-11-05, University of 179 Washington, Department of Computer Science and Engineering, November 1996. (p 57)
....optimizations that could lead to signi cant performance bene ts. A whole program compilation model, on the other hand, assumes that the whole program is available at the compile time and that the programmer will not add, remove or modify any classes without recompiling the complete program [5]. This allows the compiler to perform a wide range of aggressive interprocedural optimizations, including object inlining and class specialization [3, 2] which the authors have shown can yield integer factor speedups on code that uses the full power of object oriented program. Unfortunately, the ....
....version of subclasses of AFoo. The end user can still write and compile subclasses of AFoo, but cannot do anything else with those classes. This restriction ensures that there cannot be any instances of AF oo that are not also instances of Foo at run time. The whole program optimization techniques [2, 3, 5] can take advantage of this fact and optimize the code that uses F oo. The development to distribution implementation as described above (marking whole classes as either private, public or non extensible) would extract all the public methods from the class that is being converted into the ....
[Article contains additional citation context not shown here]
Jerey A. Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, 1996.
....freedom to develop flexible, extensible object oriented programs, without worrying about the performance. This enables the programmers to concentrate on the overall design and extensibility of the program without forcing them to introduce performance design trade offs. Whole program compilation [37, 27] is too restrictive for Java. Such a model produces programs that are either non portable (by generating machine code at the client side) or completely inflexible (by generating closed programs at the server side) The almostwhole program compilation model eliminates this problem by introducing a ....
....community. Three main reasons for Java programs not to achieve high performance by comparison with Fortran and C are: Java compilers and execution environments are not yet on par with the traditional optimizing compilers. Although there has been a significant advancement in this area lately [18, 37, 38], especially with run time compilation and optimization techniques [67, 3, 2] Java systems still have to incorporate many optimizations to be able to compete with the traditional compilers. The non object oriented features of Java add significant overhead. Bytecode portability requires that ....
[Article contains additional citation context not shown here]
Jeffrey A. Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, 1996.
....potential targets of a virtual call, compilers can perform various forms of guarded inlining. The compiler can decide which targets to speculatively inline at a call site using static heuristics [13, 8] pro le information [24, 21] and or static examination of the program s class hierarchy [7, 11]. Jalape no uses both class tests and method tests [12] to perform guarded inlining of virtual calls based on both class hierarchy analysis and on line pro le information. 10 In addition to determining which calls are legal to inline, the compiler must identify a set of call sites as attractive ....
J. Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, Nov. 1996. TR-96-11-05.
....with C component code [13] 5] One reason for this is that tool support for developing aspect weavers for C is missing. For this reason our group has developed the PUMA aspect weaver environment [2] Using global project knowledge for program optimization has also been investigated in Dean [4]. In his thesis he discusses various approaches for improving the generated code from object oriented languages. The presented approach for inline optimization tries to evaluate the cost of each inline path by comparing inlined and not inlined machine code for that path. The final decision what to ....
J. Dean. Whole-Program Optimization of Object-Oriented Languages. Technical Report TR-96-1105, University of Washington, 1996.
.... dispatch and a large number of potential aliases [ZCG94] Heavy use of the feature of dynamic dispatch and the fact that methods tend to be small in size impose performance penalties when the programs are compiled using traditional intraprocedural techniques [ASU86] Optimization techniques [Dea96, DDG 96, Ple96, Cha92] have been proposed which have a direct benefit of eliminating the overhead of dynamic dispatch by statically determining the receiver of a method call. Moreover greater indirect benefits are obtained by enabling inlining and hence further intraprocedural optimizations. ....
Jeffery Dean. Whole-program optimization of object-oriented languages. PhD thesis, University of Washington, Seattle, 1996.
....use of virtual functions (a.k.a. dynamic dispatch or message passing) is a significant contributing factor to this performance overhead [DH96] As a result, a number of optimization techniques have been proposed that attempt to reduce the overhead of virtual function calls [DEMM96, PR94, CHS95, Dea96, LSG00] However, due to a lack of runtime information (i.e. the actual object type) and the need to be conservative during these modifications, these methods are partially successful. In this paper, we are looking at how predication can be used to extend the benefits of existing optimizations ....
....performance of virtual function calls to statically bound function calls. 3 Reducing the Direct Cost of Virtual Function Calls The ultimate goal of most optimization techniques for object oriented languages is to make dynamic dispatches execute quickly, preferably by eliminating them entirely [Dea96] A large body of research has been dedicated to do exactly this, and as a result techniques have been proposed, and to some extent implemented. DEMM96, PR94, CHS95, DDG 96, LSG00] These techniques can be categorized as static techniques, dynamic techniques and in certain cases a ....
[Article contains additional citation context not shown here]
J. Dean. Whole-program optimization of object oriented languages. Technical report, University of Washington, 1996.
.... and limited interprocedural optimizations which include: intraprocedural class analysis [John88, Cham90] hard wired class prediction for common messages (Cecil only) Deut84, Cham89] splitting [Cham89] class hierarchy analysis [Fern95, Dean95, Diwa96] inlining, static class prediction [Dean96], closure optimizations that identify and stack allocate LIFOclosures and sink partially dead closure creations (Cecil only) and a suite of traditional intraprocedural optimizations such as common subexpression elimination, constant propagation and folding, dead assignment elimination, and ....
Jeffrey Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, November 1996. TR-96-11-05.
....of compiled Java code is the paramount concern, but other factors including garbage collection and thread synchronization must be considered as well. Fortunately, a great deal of previous work has investigated this problem domain, for Java [16, 20] as well as other object oriented languages [2, 5]. Java I O performance remains largely uninvestigated. A primary goal is to give Java applications ecient access to low level system resources (such as fast network interfaces, I O and RAID controllers, and so forth) such access is necessary for implementing high performance communication and ....
Jerey Dean. Whole-program optimization of object-oriented languages. In PhD thesis, University of Washington, Seattle, Washington, 1996.
.... function calls, a number of optimization techniques, such as class testing, have been proposed that convert virtual function calls into static function calls [3; 4; 5; 6; 7] Class testing attempts to statically bind a virtual function call by determining the class type of an object at runtime [6]. This optimization is applied when static analysis techniques (e.g. type or class hierarchy analysis) are unable to exactly determine the type of an object during compilation. In this case, the compiler can use the information regarding the set of possible types for an object (extracted during ....
.... is to make dynamic dispatches execute quickly, preferably by eliminating them entirely [6; 3; 4; 5; 11; 7; 6] One of these techniques, which is referred to as class testing, attempts to statically bind a virtual function call by determining the class type or inheritance of an object at runtime [6]. The application of class testing to statically bind virtual function calls has been implemented in various research tools and commercial compilers. Generally, this implementation comes in one of two forms: ffl Exhaustive Class Testing: The compiler inserts tests for all possible class types of ....
[Article contains additional citation context not shown here]
J. Dean. Whole-program optimization of object oriented languages. Technical report, University of Washington, 1996.
....as Java, inlining may, in fact, not always be a fully one way transformation. Consider a method invocation m:P ( The actual procedure called will depend on the run time type of m. In cases when more than one method can be invoked at a particular call site, we have to inline all possible methods [5] and select the appropriate code by branching on the type of m (see Figure 14) Hence, even after inlining and removal of methods, the obfuscated code may still contain some traces of the original abstractions. code for class2: P code for class1: P call m:P ( Inline m.type = class1 m.type ....
Jeffrey Dean. Whole-Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, 1996.
....of compiled Java code is the paramount concern, but other factors including garbage collection and thread synchronization must be considered as well. Fortunately, a great deal of previous work has investigated this problem domain, for Java [13, 16] as well as other object oriented languages [2, 6]. Java I O performance remains largely uninvestigated. A primary goal is to give Java applications e cient access to low level system resources (such as fast network interfaces, I O and RAID controllers, and so forth) such access is necessary for implementing high performance communication and ....
Jerey Dean. Whole-program optimization of object-oriented languages. In PhD thesis, University of Washington, Seattle, Washington, 1996.
....and C. There are three main reasons why Java programs do not achieve high performance by comparison with Fortran and C: Java compilers and execution environments are not yet on par with the traditional optimizing compilers. Although there has been a significant advancement in this area lately [2, 7, 9], especially with the run time compilation and optimization techniques, Java systems still have to improve to be able to compete with the traditional languages. The non object oriented features of Java add significant overhead. Bytecode portability requires that major optimizations be delayed ....
....implementations. Static compilers must overcome special problems even before they can apply traditional optimizations because the exception mechanism interferes with control flow analysis and makes it difficult to use the straightforward implementation of some code motion optimizations [2] Whole [7] and almost whole [3] program optimization techniques have to be further developed for Java environment. Because these strategies sacrifice some of the portability and security of the language, they might not be acceptable to some users. Dean et al. 7, 8] Agesen [1] and others [2, 3, 5, 9] have ....
[Article contains additional citation context not shown here]
J. A. Dean. Whole program optimization of object-oriented languages. Ph.D. thesis, University of Washington, 1996.
....is a strategy in which the compiler assumes a static class hierarchy at the compile time [3] and the programmer specifies the classes that would be publicly visible. Applied to Java, this allows for extensive program optimization, with certain limitations when compared to whole program compilation [11, 6]. The generated code is fully portable and verifiable Java bytecode, in JAR archive form. Class specialization is an optimization where class is specialized based on the exact type of the polymorphic data it contains [2, 7, 10] Several specialized versions of the original class are generated, ....
....propagation) that are created by straightforward inlining are exploited. 6 Almost Whole Program Compilation The optimizations described in the previous sections have one major impediment: they require whole program analysis and compilation. Although this is not a problem in other environments [11, 6], Java presents a serious obstacle to this approach. If we want to use Java s portability and security, these optimizations either have to be performed at a bytecode level or implemented in a JIT compiler. Unfortunately, the second option is not feasible at this point, since the whole program ....
J. A. Dean, Whole Program Optimization of Object-Oriented Languages, PhD thesis, University of Washington, 1996.
.... class analysis [Johnson 88, Chambers Ungar 90] hard wired class prediction for common messages (Cecil programs only) Deutsch Schiffman 84, Chambers Ungar 89] splitting [Chambers Ungar 89] class hierarchy analysis [Dean et al. 95] crossmodule inlining, static class prediction [Dean 96] closure optimizations (Cecil only) and a suite of traditional intraprocedural optimizations such as common subexpression elimination, constant propagation and folding, dead assignment elimination, and redundant load and store elimination. We applied these optimizations through our Vortex ....
Jeffrey Dean. Whole Program Optimization of Object -Oriented Languages. PhD thesis, University of Washington, November 1996. TR-96-11-05.
....as Java, inlining may, in fact, not always be a fully one way transformation. Consider a method invocation m:P ( The actual procedure called will depend on the run time type of m. In cases when more than one method can be invoked at a particular call site, we have to inline all possible methods [6] and select the appropriate code by branching on the type of m. Hence, even after inlining and removal of methods, the obfuscated code may still contain some traces of the original abstractions. 5.3 Clone methods When trying to understand the purpose of a subroutine a reverse engineer will of ....
Jeffrey Dean. Whole-Program Optimization of ObjectOriented Languages. PhD thesis, University of Washington, 1996.
.... 88, Chambers Ungar 90] hard wired class prediction for common messages (Cecil programs only) Deutsch Schiffman 84, Chambers Ungar 89] splitting [Chambers Ungar 89] whole program class hierarchy analysis [Dean et al. 95] cross module inlining, static class prediction [Dean et al. 96, Dean 96] and closure optimizations (Cecil only) We applied these optimizations through our Vortex compiler to produce C code, which we then compiled with gcc O2 to produce executable code. The interprocedural configuration augments the base configuration with interprocedural analyses that enabled the ....
Jeffrey Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, November 1996. TR-96-11-05.
No context found.
Jeffrey Dean. Whole Program Optimization of Object-Oriented Languages. PhD thesis, University of Washington, November 1996. TR-96-11-05.
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