80 citations found. Retrieving documents...
Urs Hlzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

A Member Lookup Algorithm for C++ - Ramalingam And Harini (1997)   (5 citations)  (Correct)

.... of member names in the program, then the worst case complexity 9 [1] function dominates ( L1,V1) L2,V2) f [2] return (V2 2 virtual bases[L1] or (V1 = V2 6= Omega Gamma3 [4] procedure doLookup( f [5] for each class C in topological sort order f [6] Identify list of members for C [7] Members[C] M[C] 8] for every direct base class X of C [9] Members[C] Members[C] Members[X] 10] Identify dominating definition for each member of C [11] for every m 2 Members[C] f [12] if (m 2 M[C] then [13] lookup[C,m] Red(C, Omega Gamma [15] toBeDominated : ....

....two objects that does not contain any other object with a member called m. Member lookup in Self is done completely at run time, and, hence, the speed of the lookup greatly affects the performance of Self programs. Hence, several techniques have been developed to optimize the lookup at run time [7, 6]. These techniques, however, are not directly relevant to compiletime member lookup. Attali et al. 4] present a semantics and algorithm for lookup in Eiffel, another language with multiple inheritance. Member lookup in Eiffel is complicated by the presence of a feature called renaming, that ....

U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proc. of the SIGPLAN'94 Conf. on Programming Language Design and Implementation, pages 326--336, June 1994.


`C: A Language for High-Level, Efficient, and.. - Engler, Hsieh, Kaashoek (1996)   (4 citations)  (Correct)

....We expect the use of templates to improve the speed of dynamic code generation by an order of magnitude [12] 6 Related Work Dynamic code generation has a long history. It has been used to increase the performance of operating systems [15] windowingoperations [14] dynamically typed languages [2, 8, 4], simulators [18] and matrix manipulations [5] These systems have typically used low level, non portable dynamic code generation techniques. With C applications can now specify code in a simple, portable, and efficient manner. C grew out of our previous work with dcg [5] an efficient, ....

Urs Holzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of PLDI '94, pages 326--335, Orlando, Florida, June 1994.


First Year Report - Harris (1998)   (Correct)

....of programming in which message send operations are extremely frequent and, as with Smalltalk, it is designed to provide an exploratory programming environment. It has traditionally been implemented using dynamic compilation and dependency links between source and compiled methods [HCU92, CU91, HU94] Particular attention is paid to optimizing message passing and to avoiding intrusive pauses during compilation [Hol94] Polymorphic inline caching is used to implement message sends efficiently and to provide type feedback information to guide inlining and compilation. Optimization is ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. ACM SIGPLAN Notices, 29(6):326--336, June 1994.


Implementation techniques for a multi-service Java Virtual Machine - Harris (1999)   (Correct)

....of programming in which message send operations are extremely frequent and, as with Smalltalk, it is designed to provide an exploratory programming environment. It has traditionally been implemented using dynamic compilation and dependency links between source and compiled methods [HCU92, CU91, HU94] Particular attention is paid to optimizing message passing and to avoiding intrusive pauses during compilation [Hol94] Polymorphic inline caching is used to implement message sends efficiently and to provide type feedback information to guide inlining and compilation. Optimization is ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. ACM SIGPLAN Notices, 29(6):326--336, June 1994.


Extensible Virtual Machines - Harris (2001)   (4 citations)  (Correct)

....to provide an efficient implementation. This area has therefore been the primary focus of the published work on the self vm. In a series of papers, Agesen, Chambers, Hlzle, and Ungar describe a number of mutually beneficial techniques for the efficient implementation of self [Chambers91, Hlzle92, Hlzle94b, Hlzle94a, Agesen95] Type feedback gathers statistics about the frequency of different targets at each method call site. Adaptive optimization identifies frequently executed methods and uses an optimizing compiler to translate their bytecode implementation to native code. A faster non optimizing ....

Urs Hlzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Programming Language Design and Implementation (PLDI '94), volume 29(6) of ACM SIGPLAN Notices, pages 326--336, June 1994. (p 15)


Specialization Patterns - Schultz, Lawall, Consel (2000)   (7 citations)  (Correct)

.... (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 objects that cooperate through abstract interfaces, simplifying ....

....by program specialization, but without requiring user guidance. To reduce the complexity of performing analysis, simplified type inference algorithms such as Class Hierarchy Analysis are used [13] combined with profile information that guides speculative optimizations such as receiver prediction [18, 20]. Since techniques such as inlining and specialization for types (customization [7] and method argument specialization [11] can cause code explosion, the same profiling information is used to focus these optimizations on the critical parts of the program [12, 20] The optimizations offered by ....

[Article contains additional citation context not shown here]

U. Holzle and D. Ungar. Optimizing dynamicallydispatched calls with run-time type feedback. In Proceedings of the Conference on Programming Language Design and Implementation, pages 326--336, New York, NY, USA, June 1994. ACM Press.


Generative Binary Components - Kamin, Callahan, Clausen (2001)   (Correct)

....generation is used primarily to gain efficiency for legacy code. We mean by that that its intent is not to give programmers new programming tools, but rather to transparently optimize existing code. The best known examples are the just in time (JIT) compilers for Java [16] see also Holzle [14]) Another example is Lee and Leone s Fabius compiler [22] In both cases, the challenge is to gain more in increased code efficiency than is lost in run time compilation time. Lee and Leone have emphasized the engineering of their program generation method, going so far as to count instructions ....

U. Holzle, D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proc. ACM SIGPLAN '94 Conf. on Programming Language Design and Implementation, pages 326--336, June 1994.


Towards Automatic Specialization of Java Programs - Schultz, Lawall, Consel, Muller (1999)   (18 citations)  (Correct)

....as separate phases, the execution environment can include all these tasks, and perform compilation as a continuous process. This approach allows aggressive optimizations similar to those employed by program specialization, since information in the form of usage patterns is available at run time [16]. However, the analyses that can be performed are inherently limited by the amount of available time and space. Also, checks must be retained to verify invariants that could have otherwise been detected by a specializer. 20 7 Future Work We have provided an outline of how automatic program ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the Conference on Programming Language Design and Implementation, pages 326--336, New York, NY, USA, June 1994. ACM Press.


Efficient Implementation of Java Interfaces.. - Alpern, Cocchi.. (2001)   (8 citations)  (Correct)

....guarding) since analysis has revealed the exact target. To inline selected 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 ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326-336, June 1994. SIGPLAN Notices, 29(6).


Compiler Optimization of C++ Virtual Function Calls - Porat, Bernstein, al. (1996)   (2 citations)  (Correct)

....a unique implementation of this function that can possibly be called at that point. In such case, the virtual function call can be replaced by a direct call. Even when the particular virtual function call is not always resolved to a single implementation, we may explore type feedback information [10] that indicates that there is a particular implementation that is resolved most of the time. Using this information, an indirect virtual function call can be replaced by a conditional (type predicted) expression, so that the likely invoked function is called directly and others are invoked through ....

....function call sites whether or not they are resolved to a unique implementation can be found in [3] 4] and [12] These papers focus on whole program analysis of C code but none of them involve compiler implementations to generate optimized virtual calls. Run time type feedback is used in [10] and [9] to optimize dynamically dispatched calls in SELF and Cecil. This technique is also examined in [9] in the context of C , but it is limited to the stage of code analysis only, i.e. no transformations are applied to the code. A very recent paper by Aigner and Holzle ( 2] that was ....

[Article contains additional citation context not shown here]

U. Holzle and D. Ungar. Optimizing DynamicallyDispatched Calls with Run-Time Type Feedback. In SIGPLAN '94 Conference on Programming Languages Design and Implementation, pages 326--336. ACM Press, June 1994.


A Framework for Interprocedural Optimization in the Presence of.. - Michael (2000)   (12 citations)  (Correct)

....method. Using their preexistence technique, the method invocation at cs1 cannot be inlined, because the object pointed to by b is not allocated until after the invocation of foo( Another approach to devirtualization and inlining is based on a runtime type check of the receiver expression [20]. Using this technique, one can devirtualize and inline c.Bbar( at cs2 as follows: if (c instanceof B c instance of C) devirtualize and inline B: Bbar( else c.Bbar( In contrast to the runtime type check, our extant safety test can cover the entire specialized method. This ....

....and the improved performance by the optimization, which static analysis and or runtime profiling can help analyze. Extant tests offer better optimization opportunities than tests based on the runtime type of an object that typically guard against incorrect specialization for a receiver expression [20]. In contrast to such runtime tests, a single extant test can cover multiple statements, and thereby offers the opportunity for optimizations across the multiple statements. Further, the multiple statements covered by a single extant test can cross methods or class boundaries, in which case ....

U. Holzle and D. Ungar. Optimizing dynamicallydispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994. SIGPLAN Notices, 29(6).


Jalapeño - a Compiler-Supported Java.. - Alpern, Cocchi.. (1999)   (Correct)

....and Java applications. A large collection of work addresses optimizations specific to object oriented languages, such as class analysis, both intraprocedural [8] and interprocedural (see related work in [15] class hierarchy analysis and optimizations [22, 20] 9 receiver class prediction [13, 16, 7], method specialization [22] and call graph construction (see related work in [15] Other optimizations relevant to Java include bounds check elimination [18] and semantic inlining [23] 6 Conclusions The use of Java in many important server applications brings with it several requirements ....

Urs Holzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994. SIGPLAN Notices, 29(6).


Goal-Directed Value Profiling - Scott Watterson Saumya (2001)   (1 citation)  (Correct)

....analysis as discussed in Sec 4.3 to choose those candidates that may yield useful optimizations. Our system focuses on code specialization, since that optimization is implemented in alto. If we change the optimizations used in alto, for instance to reduce indirect function call overhead [18, 19], we need not change the profiler. Since the optimizer shares the cost benefit decisions with the profiler, the profiler would simply select different program points, based on the expected benefit. 4.1 A Cost Model for Value Profile Based Code Specialization Our approach uses value profiles ....

U. Holzle and D. Ungar, "Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback", Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation (PLDI), June 1994, pp. 326--336.


Automatic Program Specialization for Java - Schultz, Consel (2000)   (2 citations)  (Correct)

....be used to eliminate virtual dispatching, but only when there is a single possible receiver; in highly generic code, there typically are multiple receivers for virtual dispatches. Nonetheless, a virtual call can be replaced with an explicit selection of which callee to invoke with a direct call [12, 13]. This highly aggressive optimization must be guided with profile information to avoid code explosion, and retains the cost of a runtime decision. The rest of this section covers an automatic program specializer for Emerald, an automatic program specializer for C , and a discussion of the ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the Conference on Programming Language Design and Implementation, pages 326--336, New York, NY, USA, June 1994. ACM Press.


Microarchitectural and Compile-Time Optimizations for.. - Kalamatianos (2000)   (1 citation)  (Correct)

.... it is not surprising that many studies have focused on the behavior of programs written with object oriented languages [13, 14, 15, 16, 17] A significant amount of research has also dealt with compiler optimizations and architectural support to improve the performance of object oriented software [18, 19, 20, 21, 22, 23, 24, 25, 26]. OOP is fundamentally built around the concept of an object and its underlying model. An object is fully described with its state and the necessary behavior to manipulate that state. Data encapsulation is the property of combining state and behavior together to represent an object. Objects ....

Urs Holzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the International Conference on Programming Language Design and Implementation, pages 326--336, June 1994.


Calpa: A Tool for Automating Selective Dynamic Compilation - Mock, Chambers, Eggers (2000)   (14 citations)  (Correct)

....intervention. 1. Introduction Dynamic compilation optimizes programs at run time, based on information available only at run time, thus offering the potential for greater performance than purely statically compiled code. Some dynamic compilation systems, including Smalltalk 80 [27] Self [28, 29], and just in time compilers for Java (for example, 30] perform virtually all compilation during program execution. Others are selective about which parts of programs they dynamically compile. Selective dynamic compilation systems can focus the additional run time effort of dynamic compilation ....

U. Holzle and D. Ungar. Optimizing DynamicallyDispatched Calls with Run-Time Type Feedback. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326-336, June 1994.


The Space Overhead of Customization - Dieckmann, Hölzle (1997)   Self-citation (Hlzle)   (Correct)

.... calls [DS84] CUL89] Much previous work has attempted to overcome this performance problem with a suite of optimization techniques aimed at reducing the cost of dynamic dispatch: inlining [CU93] customization ( CU89] CU93] splitting ( CU93] CU90] type inference [APS93] type feedback [HU94a], specialization [DCG95a] and adaptive optimization [HU94a] Together, these optimizations can dramatically improve the performance of pure object oriented languages. Many of these optimizations trade code space for speed by creating multiple specialized copies of a piece of source code, each of ....

.... overcome this performance problem with a suite of optimization techniques aimed at reducing the cost of dynamic dispatch: inlining [CU93] customization ( CU89] CU93] splitting ( CU93] CU90] type inference [APS93] type feedback [HU94a] specialization [DCG95a] and adaptive optimization [HU94a]. Together, these optimizations can dramatically improve the performance of pure object oriented languages. Many of these optimizations trade code space for speed by creating multiple specialized copies of a piece of source code, each of which can execute faster than code handling the general ....

[Article contains additional citation context not shown here]

Urs Hlzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the SIGPLAN `94 Conference on Programming Language Design and Implementation, p. 326-336. Published as SIGPLAN Notices 29(6), June 1994.


Eliminating Virtual Function Calls in C++ Programs - Aigner, Hölzle (1996)   (39 citations)  Self-citation (Hlzle)   (Correct)

....that have demonstrated high payoffs in implementations of pure object oriented languages like SELF or Cecil. In this section, we briefly review these optimizations before describing our C specific implementation in the next section. 2. 1 Profile Based Optimization: Type Feedback Type feedback [HU94a] is an optimization technique originally developed for the SELF language. Its main idea is to use profile information gathered at run time to eliminate dynamic dispatches. Thus, type feedback monitors the execution characteristics of individual call sites of a program and records the set of ....

....applicationspecific profiles. The SELF system pioneered the use of profile information for optimizing objectoriented languages. An experimental proof of concept system [HCU91] was the first one to use type feedback (then called PIC based inlining ) for optimization purposes. The SELF 93 system [HU94a] used on line profile information to select frequently executed methods for optimization and to determine receiver types via type feedback. Similarly, the Cecil compiler [G 95] uses off line profiling for optimization and inlining. Grove et al. G 95] also examined the cross input stability of ....

Urs Hlzle and David Ungar. Optimizing Dynamically-Dispatched Calls with RunTime Type Feedback. In Proceedings of the SIGPLAN `94 Conference on Programming Language Design and Implementation, p. 326-336. Published as SIGPLAN Notices 29(6), June 1994.


Effective Interprocedural Optimization of Object-Oriented Languages - Grove (1998)   (5 citations)  (Correct)

No context found.

Urs Hlzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994.


Adaptive Online Context-Sensitive Inlining - Hazelwood, Grove (2003)   (6 citations)  (Correct)

No context found.

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994. SIGPLAN Notices, 29(6).


Connectivity-Based Garbage Collection - Hirzel (2004)   (2 citations)  (Correct)

No context found.

Urs Holzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Programming Languages Design and Implementation (PLDI), 1994.


Goal-Directed Value Profiling - Watterson, Debray (2001)   (1 citation)  (Correct)

No context found.

U. Holzle and D. Ungar, "Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback", Proc. SIGPLAN '94 Conference on Programming Language Design and Implementation (PLDI), June 1994, pp. 326-- 336.


Dynamic Feedback: An Effective Technique for Adaptive Computing - Diniz, Rinard (1997)   (19 citations)  (Correct)

No context found.

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the SIGPLAN 94 Conference on Program Language Design and Implementation,Or- lando, FL, June 1994.


Checking Program Profiles - Patrick Moseley Saumya (2003)   (Correct)

No context found.

U. Holzle and D. Ungar. Optimizing dynamicallydispatched calls with run-time type feedback. In Proc. ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, June 1994.


Adaptive Online Context-Sensitive Inlining - Hazelwood, Grove (2003)   (6 citations)  (Correct)

No context found.

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 326--336, June 1994. SIGPLAN Notices, 29(6).

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