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.


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

....benefit analysis is of critical importance in reducing the amount of time and space used for profiling. 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 [25, 26], we need not change the profiler significantly. Since the profiler 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 ....

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.


Synergies Between Object-Oriented Programming Language Design.. - Chambers (1996)   (1 citation)  (Correct)

....the library using knowledge of how the application is using the library. When static class analysis cannot determine a tight bound on the set of possible classes of the receiver of some message, dynamic profile information can be used to predict which receiver classes are most likely in practice [Hlzle Ungar 94, Grove et al. 95] This prediction is exploited by inserting run time class tests for the predicted class(es) with a successful prediction branching to optimized code for that case. Profile information can be gathered at different granularities, such as for a message, for a particular call site, ....

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, pp. 326-336, Orlando, FL, June 1994. Published as SIGPLAN Notices 29(6), June 1994.


Software and Hardware Techniques for Efficient Polymorphic Calls - Driesen (1999)   (2 citations)  (Correct)

....it degenerates to the cost of the technique used by the system lookup routine (often, a global lookup cache) plus the extra overhead of the instructions updating the inline cache. Fortunately, hit ratios are usually very good, on the order of 90 99 for typical Smalltalk or SELF code [127] [70]. Therefore, many current Smalltalk implementations incorporate inline caches. 3.2.3 Polymorphic inline caching (PIC) Inline caches are effective only if the receiver type (and thus the call target) remains relatively constant at a call site. Although inline caching works very well for the ....

....is, we cannot hope for much more than a performance improvement of around 5 10 for the C measured here. Java programs, where all member functions are declared virtual, can gain between 5 and 50 . Any further improvement must come from other optimizations such as customization or inlining [16][70]. Given that better optimizing compilers are possible [6] it hardly seems appropriate for programmers to compromise the structure of their programs to avoid dispatch. Many object oriented systems use or could use VFT like dispatch mechanisms (e.g. implementations of Java, Modula 3, Oberon 2, and ....

[Article contains additional citation context not shown here]

Urs Hlzle and David Ungar. Optimizing Dynamically-dispatched Calls With Run-Time Type Feedback. In PLDI `94 Conference Proceedings, pp. 326-335, Orlando, FL, June 1994. Published as SIGPLAN Notices 29(6), June 1994.


Understanding and Improving the Performance of Modern Programming.. - Diwan (1997)   (1 citation)  (Correct)

....implemented in the WPO. The chapter reference following the analysis or transformation name is the chapter where we discuss or use the results of that analysis or transformation. The last two optimizations cloning and type feedback are variants of the transformations discussed in prior work [24, 53, 21, 28, 15, 57] and they resolve method invocations by transforming the program. We defer the evaluation of these two optimizations to future work. The WPO is currently under 9000 lines of Modula 3 code (this does not include the code to implement the intermediate representation) 29 Table 3.2 Analyses ....

....bars in Figure 7.14 we see that resolving method invocations improves program performance between 1 and 11 , with an average improvement of 5.7 . This improvement is substantial, but not as impressive as the improvement observed from resolving method invocations in dynamically typed languages [23, 57]. Programs written in statically typed languages such as Modula 3 [81] have fewer method invocations than programs written in dynamically typed languages such as Smalltalk [49] Self [106] and Cecil [20] and thus eliminating the method table lookup has less impact. Figure 7.14 also shows that ....

[Article contains additional citation context not shown here]

Holzle, U. and Ungar, D. 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. ACM, June 1994.


Vortex: An Optimizing Compiler for Object-Oriented.. - Dean, DeFouw, Grove.. (1996)   (68 citations)  (Correct)

.... of a program. 1 Introduction In recent years, it has been demonstrated that intra and interprocedural static class analysis [Chambers Ungar 90, Plevyak Chien 94, Agesen Hlzle 95] class hierarchy analysis [Dean et al. 95b] and profile guided receiver class prediction [Hlzle Ungar 94, Grove et al. 95] can greatly improve the performance of dynamically typed, purely object oriented languages such as Cecil [Chambers 92, Chambers 93] Self [Ungar Smith 87] and Concurrent Aggregates [Chien 93] These techniques have been highly effective in this context, since message sends ....

....a final dynamic dispatch to handle any remaining unpredicted classes. Receiver class prediction can be driven either by information hard wired into the compiler, as in early Smalltalk and Self implementations [Deutsch Schiffman 84, Chambers Ungar 89] or by profile derived class distributions [Hlzle Ungar 94, Grove et al. 95] or by static examination of the program s class hierarchy [Chambers et al. 96] We use the term exhaustive class testing to refer to class hierarchy guided class testing, and profile guided class prediction to refer to class testing based on dynamic profile information. If a ....

[Article contains additional citation context not shown here]

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


Profile-Guided Receiver Class Prediction - Grove, Dean, Garrett, Chambers (1995)   (55 citations)  (Correct)

....for a few dozen common messages such as and if. In the absence of better static information, these systems indexed into the prediction table using the name of the message as the key, and if a matching entry was found they performed receiver class prediction accordingly. The Self 93 system [Hlzle Ungar 94] derives its predictions through a sophisticated on line profiling and dynamic compilation strategy, leading to a much larger prediction table derived from the application s run time behavior and indexed by individual call site rather than message name. Based primarily on this technique, the ....

.... Schiffman 84] Self 89 [Chambers Ungar 89] and Self 91 [Chambers 92] compilers have all utilized hard wired receiver class prediction (called type prediction in the Self work) to eliminate much of the overhead due to their pure object model and user defined control structures. The Self 93 [Hlzle Ungar 94] work demonstrated that on line call site specific profile based class prediction (called type feedback in that work) can substantially improve the performance of Self programs, but it did not investigate the effectiveness of off line profiling, demonstrate the applicability to hybrid languages ....

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


Obtaining Sequential Efficiency for Concurrent.. - Plevyak, Zhang, Chien (1995)   (29 citations)  (Correct)

....we have adapted them significantly to the COOP model. Many researchers have studied inlining for sequential languages [2, 28, 34] however, their main concern is different from our focus on concurrency and locality. Our inlining techniques are most similar to the ones used in the SELF compiler [6, 7, 24] in their requirement for accurate type information and customization to enable inlining, speculative optimizations, and the insertion of runtime checks to condition optimized code. Our inlining heuristics are a combination of static frequency estimation [44] and the commonly used size ....

Urs Holzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the 1994 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 326--336, June 1994.


Precise Type Analysis by Abstract Interpretation - Knoop, al. (1996)   (Correct)

....complexity. Our approach, which also has an exponential worst case time complexity, is not heuristic. A different setting has recently been considered by Pande and Ryder proposing a type analysis for C [PR] Conceptually completely different and incomparable to our approach are the approaches of [AH, Ch, HCU, HU], which propose an interleaving of program execution with type analysis, e.g. during the pauses of the programmer (user) in order to exploit the feedback yielded by monitoring ( profiling ) previous program executions. Moreover, the approaches cited above, including also the conceptually ....

Holzle, U., and Ungar, D. Optimizing dynamically--dispatched calls with run--time feedback. In Proceedings of the ACM SIGPLAN'94 Conference on Programming Language Design and Implementation (PLDI'94) (Orlando, Florida), ACM SIGPLAN Notices 29 , 6 (1994), 326 - 336.


An Assessment of Call Graph Construction Algorithms - Grove, Chambers (2000)   (Correct)

....experiments were conducted using the Vortex compiler infrastructure. The basic methodology is to augment an already optimized base configuration with several interprocedural analyses performed over the call graph constructed by one of the algorithms. Because profile guided class prediction (pgcp) [Hlz94, Grov95b] has been demonstrated to be an important optimization for some object oriented languages, but may not be desirable to include in every optimizing compilers, all of the experiments use two base configurations: one purely static and one with profile guided class prediction. Benchmark programs were ....

....non library code and were developed by different people. javac 25,500 Java source to bytecode translator c pizza 27,500 Pizza compiler 22 An Assessment of Call Graph Construction Algorithms Grove and Chambers . The base pgcp configuration augments base with profile guided class prediction [Hlz94, Grov95b]. For all programs with non trivial inputs, different input sets were used to collect profile data and to gather other dynamic statistics (such as application execution time) For each call graph construction algorithm G, the base IP G configuration augments base with the following ....

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.


Hey, You Got Your Compiler in My Operating System! - Mark, Montague (1999)   (Correct)

....specialization, and compilation to discover and exploit any quasi static features of the code in the system, while maintaining the illusion that the system is dynamically typed. The result is a system with the convenience and functionality of an interpreter, but the speed of a compiled language [14, 4]. C is an extension to C that includes syntax for dynamic code generation. Its compiler tcc generates code optimized with respect to run time constants [28] Consel and Noel demonstrate a general system for efficient run time specialization in C [6] The Synthesis kernel and its successor ....

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


Practical Techniques For Virtual Call Resolution In Java - Sundaresan (1999)   (2 citations)  (Correct)

....that at a given call site the class of the receiver tends to belong to a set containing a small number of classes. Thus they concluded that pro le guided receiver class prediction would be bene cial though they did not have an implementation in a compiler to prove this hypothesis. Holzle and Ungar [29] describe transformations to convert method invocations to direct calls (pro le guided) for Self programs. Aigner and Holzle [9] in their work in evaluating techniques for resolving method invocations in C found that type feedback and type hierarchy analysis are both e ective at resolving ....

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


Practical Virtual Method Call Resolution for Java - Sundaresan, Hendren.. (1999)   (61 citations)  (Correct)

....can be used to: 1) compact applications by removing methods that are never called, and (2) improve the e ciency and accuracy of subsequent interprocedural analyses. Of course, virtual method resolution is not a new problem. It has been widely studied for a variety of objectoriented languages[7, 8, 9, 10, 11, 13, 16, 15, 17, 19, 22, 23, 24]. The focus of this paper is the development and evaluation of a new simple and inexpensive technique for resolving virtual method calls in Java. Our main objective was to develop a technique which was simple, easy to implement, could be applied to large Java applications, but yet could also yield ....

Urs Hlzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the Conference on Programming Language Design and Implementation, pages 326336, New York, NY, USA, Jun. 1994. ACM Press.


Language and Compiler Support for Dynamic Code Generation - Poletto (1999)   (Correct)

....of systems for a long time [46] Keppel et al. 47] demonstrated that it can be effective for several different applications. It has served to increase the performance of operating systems [7, 24, 61, 62] windowing operations [55] dynamically typed languages such as Smalltalk [20] and Self [12, 41], and simulators [74, 77] Recent just in time (JIT) compilers for mobile code such as Java [37] use dynamic compilation techniques to improve on the performance of interpreted code without incurring the overhead of a static compiler. Berlin and Surati [6] reported 40x performance improvements ....

U. Holzle and D. Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 326--335, Orlando, FL, June 1994. ACM.


A Case for Automatic Run-Time Code Optimization - Feigin (1999)   (5 citations)  (Correct)

....63 Chapter 8 Related Work Specialized run time techniques have been successfully applied to a number of different areas. For example, one application has been to optimize dynamic typing in the objectoriented language SELF, in order to eliminate some of the overhead of virtual table lookups [6,18]. This method optimizes frequently executed sections of code by replacing dynamically dispatched method calls with inlined code from the most commonlyobserved dynamic call targets. The focus of the SELF project was on object oriented language specific optimizations, which differs greatly from our ....

U. Holzle, D. Ungar, "Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback," Proceedings of the SIGPLAN `94 Conference of Programming Language Design and Implementation, June 1994.


Midgard - A Dynamic Programming Environment Supporting.. - Røn, Schade (1998)   (Correct)

....environments, but it feels as depicted in Fig. 1(b) because of a low turn around time. The drawbacks of such environments is the late detection of type errors and the inefficiency of the generated code. Self is a notable exception as it is almost as efficient as the statically checked languages [13, 14]. Edit Execute Link Compile (a) Statically checked Edit Execute (b) Dynamically checked Figure 1. Programmers perception of work cycle in an environment The dynamic environments are often associated with a programming methodology called exploratory programming (EP) 30] The idea is that it is ....

....programs. Midgard doesn t have these disadvantages, but it lacks the uniformity, direct manipulation, and object outliner that Self has. This could be a future research direction for Midgard. Efficiency isn t an issue as Self almost has reached the level of statically checked languages [13, 14], but the techniques necessary to reach this efficiency require large resources to implement; resource on a scale comparable to Orm. Extensibility in Tailorable Applications In [22] Malhotra presents several applications of an interpreter for BETA used to extend the functionality of a running ....

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, 1994.


Efficient Parallel Execution of Irregular Recursive Programs - Prechelt, Hänßgen (1999)   (Correct)

....appears to be available. With respect to using information from a run time profile, some work has been done, e.g. on improving the cache performance of programs (for instance in the P3T system [10] on optimizing the object oriented dynamic method dispatch (for instance in the Self system [16]) and on optimizing the data distribution in distributed memory parallel programming [15, 19] Various optimizations based on profiling are used by Sun s Hotspot Java Virtual Machine 1 . With respect to the goals of REAPAR, the most similar systems described in the literature are Cilk, Olden, ....

Urs Holzle 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, Orlando, FL, USA, June 1994. ACM.


Towards Better Inlining Decisions Using Inlining Trials - Dean, Chambers (1994)   (18 citations)  (Correct)

....quite significant, is not as impressive as it might be in another environment. For these programs, the current SELF compiler is unable to statically bind many messages because of a lack of static type information. Future compilers for SELF and other object oriented languages [Chien et al. 93, H lzle Ungar 93, Chambers et al. 93] are expected to incorporate interprocedural type analysis and extract type information from execution profiles, leading to many more messages being statically bound and thus eligible for inlining. We expect the importance of making good inlining decisions to grow as other ....

Urs Hölzle and David Ungar. Optimizing Dynamically-Dispatched Calls with Run-Time Type Feedback. Unpublished manuscript, 1993.


Simple and Effective Analysis of Statically-Typed.. - Diwan, Moss, McKinley (1996)   (41 citations)  (Correct)

....there is little to be gained by a more powerful heap analysis for our benchmarks. This is partly due to Modula 3 s language semantics which restrict aliasing: a powerful alias analysis is likely to be more useful for C than for Modula 3. Chambers [4] Calder and Grunwald [3] Holzle and Ungar [12], and Grove et al. 10] describe transformations for converting method invocations to direct calls. We focus solely on analysis. 1 Type propagation and type inference have been used to describe the same kinds of analysis in object oriented languages. Another key difference between our work and ....

....on the polymorphic method invocations since in another run of the benchmark, other method invocations may be polymorphic. From Figure 15 we see that most run time polymorphic method invocations arise because more than one type of object is stored in a heap slot. Introducing an explicit type test [12, 3] is likely to be the only technique that will resolve these method invocations. Merges in control are another important cause of the run time polymorphism, especially for trestle and can be resolved by code splitting and cloning [5, 11, 7] From the static counts above the bars, we see that while ....

Urs Holzle 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. ACM, 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.


Do Object-Oriented Languages Need Special Hardware Support? - Hölzle, Ungar (1995)   (6 citations)  Self-citation (Hlzle Ungar)   (Correct)

....to C like object code) then it should also be possible to implement less extreme object oriented languages in a similar way, so that their programs also behave like C programs. The SELF implementation employs several optimizations aimed specifically at reducing the overhead of dynamic dispatch [CUL89, HCU91, CU91, HU94]. With these optimizations, programs run several times faster than comparable Smalltalk programs (since the fastest Smalltalk system uses only a non optimizing compiler) and about half as fast as optimized C programs (for the benchmarks mentioned in [CU91] and [HU94] Since the goal of this study ....

.... dispatch [CUL89, HCU91, CU91, HU94] With these optimizations, programs run several times faster than comparable Smalltalk programs (since the fastest Smalltalk system uses only a non optimizing compiler) and about half as fast as optimized C programs (for the benchmarks mentioned in [CU91] and [HU94]) Since the goal of this study was to determine if object oriented programs still need special hardware support when compiled with stateof the art optimization techniques, the SELF 93 implementation was a good match. We measured the behavior of several large SELF applications with an ....

Urs Hlzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In PLDI `94 Conference Proceedings, pp. 326-335, Orlando, FL, June 1994. Published as SIGPLAN Notices 29(6), June 1994.


Do Object-Oriented Languages Need Special Hardware Support? - Hölzle, Ungar (1995)   (6 citations)  Self-citation (Hlzle Ungar)   (Correct)

....it should also be possible to implement less extreme object oriented languages in a similar way, so that their programs also behave like C programs. The SELF implementation employs several optimizations aimed specifically at reducing the overhead of dynamic dispatch ( CUL89] HCU91] CU91] [HU94]) With these optimizations, programs run several times faster than comparable Smalltalk programs (since the fastest Smalltalk system uses only a non optimizing compiler) and Author s addresses: Urs Hlzle, Department of Computer Science, University of California, Santa Barbara, CA 93106, USA; ....

....of Computer Science, University of California, Santa Barbara, November 1994. UCSB CS reports are available via ftp from ftp.cs.ucsb.edu. 2 Do object oriented programs need special hardware support about half as fast as optimized C programs (for the benchmarks mentioned in [CU91] and [HU94]) Since the goal of this study was to determine if object oriented programs still need special hardware support when compiled with state of the art optimization techniques, the SELF 93 implementation was a good match. We measured the behavior of several large SELF applications with an ....

Urs Hlzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In PLDI `94 Conference Proceedings, pp. 326-335, Orlando, FL, June 1994. Published as SIGPLAN Notices 29(6), June 1994.


Message Dispatch on Modern Computer Architectures - Driesen, Hölzle, Vitek (1994)   Self-citation (Hlzle)   (Correct)

.... such implementations may not be optimal [AGS94] Dispatch overhead can also be reduced by eliminating dispatches (rather than just making them fast) For example, the Self 93 system eliminates 95 of all dispatches [Hl94] with compiler optimizations such as customization [CUL89] and type feedback [HU94]. Similarly, concrete type inference [OPS92] VHU92] APS93] PC94] can determine the concrete receiver types of calls, possibly eliminating dynamic dispatch for many sends. The Apple Object Pascal linker [App88] turned dynamically dispatched calls into statically bound calls if a method had ....

Urs Hlzle and David Ungar. Optimizing dynamically-dispatched calls with run-time type feedback. In PLDI `94 Conference Proceedings, pp. 326-335, Orlando, FL, June 1994. Published as SIGPLAN Notices 29(6), June 1994.


Type Feedback vs. Concrete Type Inference: A Comparison of.. - Agesen, Hölzle (1995)   (1 citation)  Self-citation (Hlzle)   (Correct)

....frequencies of receiver classes rather than treating them all as equally likely. Type inference may generate better code because it can completely eliminate dispatch for many message sends. Previous studies have reported the effectiveness of type inference and type feedback (e.g. PC94a] and [HU94a]) but direct comparisons have been impossible because important other factors were different, including programming language, compiler technology, and choice of benchmarks. The main contribution of this paper is a detailed comparison which is: direct, because we have been able to connect both ....

....the same suite of benchmarks in both cases; and . realistic, because both the type feedback system and the type inferencer represent high quality implementations of these concepts (the underlying SELF 93 system has been shown to significantly outperform commercial Smalltalk implementations [HU94a]) In the remainder of this paper, we briefly summarize the two techniques (section 2) quantitatively compare them step by step (section 3) and qualitatively discuss their relative strengths and weaknesses (section 4) We then review related work (section 5) and finally offer our conclusions ....

[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 (1995)   (39 citations)  Self-citation (Hlzle)   (Correct)

....targeted at reducing the cost of dynamic dispatch in order to improve performance. So far, much of the research on such optimizations has concentrated on pure object oriented languages because the frequency of dynamic dispatch is especially high in such languages. Several studies (e.g. CUL89] [HU94a], G 95] have demonstrated that optimization can greatly reduce the frequency of dynamic dispatch in pure object oriented languages and significantly improve performance. However, so far no study has shown that these optimizations also apply to a hybrid language like C where the programmer can ....

....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 ....

[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.


Dynamic vs. Static Optimization Techniques for.. - Hölzle, Agesen   Self-citation (Hlzle)   (Correct)

....frequencies of receiver classes rather than treating them all as equally likely. Type inference may generate better code because it can completely eliminate dispatch for many message sends. Previous studies have reported the effectiveness of type inference and type feedback (e.g. PC94a] and [HU94a]) but direct comparisons have been impossible because important other factors were different, including programming language, compiler technology, and choice of benchmarks. The main contribution of this paper is a comparison which is: direct, because we have been able to connect both type ....

.... execute the same suite of benchmarks in both cases; realistic, because both the type feedback system and the type inferencer represent high quality implementations of these concepts (the underlying SELF 93 system has been shown to significantly outperform commercial Smalltalk implementations [HU94a]) and . comprehensive, because it discusses many aspects of performance rather than focussing just on raw execution performance. With the exception of a recent study by Dean et al. DGC95] which compared a very simple form of static analysis, Class Hierarchy Analysis, to profile driven ....

[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. 25


Programming as an Experience: The Inspiration for Self - Smith, Ungar (1995)   (21 citations)  Self-citation (Ungar)   (Correct)

....seeing all variables and single stepping, and can always change any method, even inlined ones, with no interference from the implementation. 4.1 Transparent Efficiency The implementation techniques for Self have been presented previously so we will only summarize the briefly here. See [Hol94] [HU94a], HCU92] HCU91] Cha92] CU91] CU90] CUL89] and [USCH92] for more details. Self presented large efficiency challenge because its pure semantics implied that every access, assignment, arithmetic operation and control structure had to be performed by sending a message. Worse yet, the Self ....

....been employed on his code. Results on two medium size cross language benchmarks (Richards and DeltaBlue) suggest that Self runs 2 to 3 times faster than ParcPlace Smalltalk 80 1 , 2.6 times faster than Sun CommonLisp 4.0 TM using full optimization, and only 2. 3 times slower than optimized C [HU94a]. Of course, these Smalltalk and Lisp implementations may not include aggressively optimized compilers, but the C language has semantics that make many more concessions to efficiency over purity, simplicity, and safety. Most implementations strive for efficiency and employ optimizations that ....

Urs Hölzle and David Ungar. Optimizing Dynamically-Dispatched Calls with RunTime Type Feedback. In Proceedings of the SIGPLAN 94 Conference on Programming Language Design and Implementation, Orlando, FL, 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