| Detlefs, D. & Agesen, O. (1999), Inlining of virtual methods, in `13th European Conference on Object-Oriented Programming', pp. 258--278. |
....there are many (mostly positive) interactions between the optimizations. Code reordering provided reasonable speedups for several of the benchmarks. Splitting provides a large performance boost for mtrt, which makes heavy use of accessor methods, many of which are inlined using a runtime guard [22]. After splitting, many of these guards can be identified as redundant and eliminated. Using edge profiles to improve inlining decisions showed Recall that the base Jikes RVM system already performs loop unrolling, static and adaptive inlining, and code reordering. This graph shows the ....
David Detlefs and Ole Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.
....there are many (mostly positive) interactions between the optimizations. Code reordering provided reasonable speedups for several of the benchmarks. Splitting provides a large performance boost for mtrt, which makes heavy use of accessor methods, many of which are inlined using a runtime guard [40]. After splitting, many of these guards can be identified as redundant and eliminated. Recall that the base Jikes RVM system already performs loop unrolling, static and adaptive inlining, and code reordering. This graph shows the performance improvement of modifying these optimizations to take ....
David Detlefs and Ole Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.
....if needed. If invalidation recompilation becomes necessary for a method invocation that has not completed, then techniques such as stack rewriting [17, 18] or code patching [20] are necessary to ensure that the remainder of the method invocation is correctly executed. In preexistence analysis [13], stack rewriting is avoided by restricting analysis to preexisting objects, so that invalidation due to dynamic class loading triggers recompilation but does not require stack rewriting. In this paper, we address the problem of dynamic optimistic interprocedural analysis. Our goal is to build on ....
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, 1999.
....based on speculative program invariants [4, 12] Despite these benefits, OSR has not yet appeared in production VMs, with the notable exception of Sun s HotSpot Server Compiler [12] due to the perceived engineering complexity. Indeed, some have presented pre existence based transformations [7] specifically to enable limited forms of optimizations enabled by OSR invalidation, but without the corresponding engineering headache. Perhaps the most daunting OSR engineering challenge concerns the transition to new compiled code. For this transition, the system must construct a new stack ....
....both unguarded inlining of final and static methods and guarded inlining of non final virtual methods. In addition, the compiler exploits preexistence to safely perform unguarded inlining of some invocations of non final virtual methods without requiring stack frame rewriting on invalidation [7]. load elimination, global code motion, and common subexpression elimination. The adaptive optimization system drives recompilation decisions based on the estimated cost and benefit of compiling each method. The system initially compiles each method with the baseline compiler, and as the program ....
[Article contains additional citation context not shown here]
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.
....that all children of in the class hierarchy are prolific. Dynamic class loading [21] is another feature of Java that forces us to do compile time analysis more conservatively. Again, the problem is similar to the problem with inlining of virtual methods in the presence of dynamic class loading [17, 36]. Due to dynamic class loading, a program can load a new class that is non prolific but subclasses a prolific class, unless the prolific class is declared final. It is possible to use the techniques for inlining virtual methods in the presence of dynamic class loading, like preexistence analysis ....
....Due to dynamic class loading, a program can load a new class that is non prolific but subclasses a prolific class, unless the prolific class is declared final. It is possible to use the techniques for inlining virtual methods in the presence of dynamic class loading, like preexistence analysis [17] and extant analysis [36] to improve the effectiveness of the test for a type being definitely prolific. For example, using extant analysis, if we create a specialized method in which the reference to is known to be extant (i.e. pointing to an existing object) 36] the test for being ....
D. Detlefs and O. Agesen. Inlining of virtual methods. In Proc. of 13th ECOOP, pages 258--278, 1999.
....(where the guard checks for the object type at run time) to handle the scenario where the inlining is invalidated by further class loading. When such a scenario occurs, run time compilation has to be performed. There has been also work on techniques for inlining virtual methods more efficiently [6, 15, 25]. Typically, static compilers use global or whole program analysis [4] to do inlining or devirtualization. However, without the ability to perform compilation at runtime, they assume that no changes will be made to classes referred to by the compiled code. Hence, they do not comply with the JLS. ....
D. Detlefs and O. Agesen. Inlining of virtual methods. In ECOOP'99, LNCS 1628, pages 258--278, 1999.
....on codes where the TIB field is frequently accessed, the indexed object model pays a much higher price than the bit stealing object model. For rat: rt: where the indexed model suffers almost 8 slowdown, the TIB accesses are primarily due to guarded inlining performed with the method test [9]; on IA32 Jikes RVM inlines these methods with a code patching guard [14] and thus does not access the TIB. Alternatively, the inlining could be performed with a type test which simply compared the TIB indexes instead of a method test, which would also eliminate the additional cost. The 1.2 ....
DETLEFS, D., AND AGESEN, O. Inlining of virtual methods. In Thirteenth European Conference on Object-Oriented Programming (1999), vol. 1628 of Lecture Notes in Computer Science, Springer Verlag, pp. 258478.
....numRows( numColumns( numRows( numColumns( for (j=1; j =numColumns; j ) end for end for element(i,j) element(i,j) for (i=1; i =numRows; i ) Thread norm1 Figure 11: Sequence diagram for jjAjj 1 implemented at MA level with A dp df. Method inlining [CG94, GDGC95, DGC95, Fer95, AH96, BS96, DA99, IKY 00, SHR 00] can be applied to eliminate the invocations by inserting the code of the invoked methods into the invoking methods. After applying method inlining, 9 the statements inside the nested loop appear as shown in Figure 12. An analysis of the loops reveals that, for every ....
....jndx represent the row and column indices, respectively. The element at the k th position in the other array, value, is the matrix element. See an example in Figure 3. 9 We present method inlining with guarded class tests for the sake of clarity and because, although it is not the most ecient [DA99, IKY 00] it generates the most general code. 11 if ( a instanceOf DenseProperty ) first guard double aux; try if ( a.storage instanceof DenseFormat ) second guard aux = a.storage.array[ j 1 ) a.storage.numRows i 1 ] else aux = a.storage.element( i, j ) catch( ....
David Detlefs and Ole Agesen. Inlining of virtual methods. In Rachid Guerraoui, editor, Proceedings of the 13th European Conference on Object-Oriented Programming { ECOOP'99, volume 1628 of Lecture Notes in Computer Science, pages 258-278. Springer-Verlag, 1999.
....as direct calls or virtual calls. Virtual calls defeat branch prediction (and thereby instruction pipelining) and inhibit inlining, blocking subsequent traditional intra procedural compiler optimizations [6, 15] Thus, many compilers go to great lengths to replace virtual calls by direct calls [1, 13, 14, 26]; some even using constrained specialization techniques [11, 20] such as customization [7] Even so, virtual calls can only be completely eliminated when static analysis can safely determine that the class of the receiver object never changes. Most design patterns distribute functionality among ....
D. Detlefs and O. Agesen. Inlining of virtual methods. In ECOOP'99 [16], pages 258--278.
....machine developed by Sun Microsystems. This virtual machine has been previously known as the Exact VM , and has been incorporated into products; for example, the Java 2 SDK (1.2.1 05) Production Release, for the Solaris operating environment. 1 It employs an optimising just in time compiler [10] and a fast synchronisation mechanism [2] More relevantly, it features high performance exact (i.e. non conservative [7] also called precise) memory management [1] The memory system is separated from the rest of the virtual machine by a well defined GC Interface [30] This interface allows ....
D. Detlefs and O. Agesen. Inlining of Virtual Methods. In Proceedings of ECOOP'99, pages 258--278, Lisbon, Portugal, June 1999.
No context found.
Detlefs, D. & Agesen, O. (1999), Inlining of virtual methods, in `13th European Conference on Object-Oriented Programming', pp. 258--278.
No context found.
David Detlefs and Ole Agesen. Inlining of virtual methods. In Proceedings of ECOOP'99, European Conference on Object-Oriented Programming, pages 258--278. Springer-Verlag (LNCS 1628), 1999.
No context found.
DETLEFS,D.AND AGESEN, O. 1999. Inlining of virtual methods. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP'99). Lecture Notes in Computer Science, vol. 1628, R. Guerraoui, Ed. Springer-Verlag, Lisbon, Portugal, 258--278.
No context found.
D. Detlefs and O. Agesen, Inlining of Virtual Methods. ECOOP 1999, pp. 258-278.
No context found.
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.
No context found.
David Detlefs and Ole Agesen. Inlining of virtual methods. In European Conference for Object-Oriented Programming (ECOOP), 1999.
No context found.
D. Detlefs and O. Agesen. Inlining of virtual methods. In Proceedings of the 13th European Conference on Object-Oriented Programming -- ECOOP'99, volume 1628 of Lecture Notes in Computer Science, pages 258--278. Springer-Verlag, 1999.
No context found.
David Detlefs and Ole Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming (ECOOP), June 1999.
No context found.
D. Detlefs and O. Agesen. Inlining of Virtual Methods. ECOOP' 99 Conference Proceedings, Springer Verlag LNCS 1628:258--277, 1999.
No context found.
D. Detlefs and O. Agesen. Inlining of virtual methods. In Proceedings of the 13th European Conference on Object-Oriented Programming -- ECOOP'99, volume 1628 of Lecture Notes in Computer Science, pages 258-- 278. Springer-Verlag, 1999.
No context found.
D. Detlefs and O. Agesen, "Inlining of virtual methods," in 13th European Conference on Object-Oriented Programming, June 1999, pp. 258--278.
No context found.
David Detlefs and Ole Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming (ECOOP), June 1999.
No context found.
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, 1999.
No context found.
David Detlefs and Ole Agesen. Inlining of virtual methods. In Thirteenth European Conference on Object-Oriented Programming (ECOOP), pages 258--278. SpringerVerlag (LNCS 1628), 1999.
No context found.
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.
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