42 citations found. Retrieving documents...
Gerald Aigner and Urs Holzle. Eliminating virtual function calls in C++ programs. In Proceedings of the 10th European Conference on Object-Oriented Programming { ECOOP'96, volume 1098 of Lecture Notes in Computer Science, pages 142-166. Springer-Verlag, 1996.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

OoLaLa: Transformations for Implementations of Matrix.. - Luján, Freeman, Gurd (2002)   (1 citation)  (Correct)

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

Gerald Aigner and Urs Holzle. Eliminating virtual function calls in C++ programs. In Proceedings of the 10th European Conference on Object-Oriented Programming { ECOOP'96, volume 1098 of Lecture Notes in Computer Science, pages 142-166. Springer-Verlag, 1996.


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

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

G. Aigner and U. Holzle. Eliminating virtual function calls in C++ programs. In Proceedings of the European Conference on Object-oriented Programming (ECOOP'96), volume 1098 of Lecture Notes in Computer Science, pages 142--166, Lisbon, Portugal, June 1996. Springer.


Type-Safe Delegation for Dynamic Component Adaptation - Kniesel   (3 citations)  (Correct)

.... called LAVA ( 6, 21] A description of implementation techniques for more traditional, C like environments can be found in [16] We are exploring the feasibility of a high performance implementation on the basis of the techniques initially developed in the Self project and follow up work ([2, 11, 12, 13, 14]) which are currently being incorporated into Java (under the brand name HotSpot ) Summarizing, the integration of delegation into mainstream object oriented languages offers an easy way . to make an object appear to be part of and act on behalf of various other ones, to make objects ....

G. Aigner; U. Hlzle: "Eliminating Virtual Function Calls in C++ Programs". In Proceedings ECOOP '96, LNCS 1098, P. Cointe (Ed.), pp. 142-166. Linz, Austria, Springer-Verlag, 1996.


Microarchitectural Techniques to Enable Efficient Java Execution - Radhakrishnan (2000)   (Correct)

....of the standard virtual function table dispatch was significant. A potential for improvement in indirect branch prediction with non hybrid predictors was observed. Aigner and Holzle discuss the impact of two object oriented specific optimizations, type feedback and static optimizations for C [12]. Type feedback is a profile based optimization technique which uses profile information at run time to eliminate dynamic dispatches. A static optimization technique like class hierarchy analysis, can statically bind some virtual function calls 24 given the applications complete class hierarchy. ....

G. Aigner and Urs Holzle. Eliminating Virtual Function Calls in C++ Programs. In ECOOP '96 Conference Proceedings, pages 142--166, July 1996.


Optimizations of Eiffel programs: SmallEiffel, The GNU Eiffel .. - Colnet, ZENDRA   (Correct)

....to the language. However, this could signi cantly reduce the potential for static optimizations. Although the optimizations we described are all static ones, they do not prevent the integration of various dynamic optimizations in SmallEi el. For example, the addition of pro le guided analysis [HCU91, CG94, AH96] would provide more information on the most commonly used types at execution time, and thus allow further optimization of dynamic dispatch sites. Acknowledgments We thank the anonymous reviewers for their helpful comments and suggestions. We are also especially grateful to Jean Michel Drouet who ....

Gerald Aigner and Urs Holzle. Eliminating Virtual Function Calls in C++ Programs. In Proceedings of the 10th European Conference on Object-Oriented Programming (ECOOP'96), volume 1098 of Lecture Notes in Computer Sciences, pages 142-166. Springer Verlag, 1996.


A Study of Exception Handling and Its Dynamic.. - Ogasawara, Komatsu.. (2001)   (8 citations)  (Correct)

....experiments. An exception path can include virtual invocations. The exception path profiling collects information on which methods are invoked by the virtual invocations in the stack when an exception is thrown. To inline these virtual methods, the compiler applies devirtualization with tests [11, 31, 6, 24], with dynamic patching [41] or with the combination of these two approaches [19] In devirtualization with tests [11, 31, 6] the compiler generates the code that guards the inlined code and then inlines each virtual method. The guard code checks if the class of each receiver object for the ....

....are invoked by the virtual invocations in the stack when an exception is thrown. To inline these virtual methods, the compiler applies devirtualization with tests [11, 31, 6, 24] with dynamic patching [41] or with the combination of these two approaches [19] In devirtualization with tests [11, 31, 6], the compiler generates the code that guards the inlined code and then inlines each virtual method. The guard code checks if the class of each receiver object for the inlined virtual method is the same as that of the inlined virtual method itself. If the guard code test fails, a normal virtual ....

Aigner, G., and Holzle, U. Eliminating virtual function calls in C++ programs. In Proceedings of the 10th European Conference on Object-Oriented Programming - ECOOP '96 (Lecture Notes in Computer Science, Vol. 1098) (Berlin, July 1996), Springer-Verlag, pp. 142--166.


OoLaLa: Transformations for Implementations of Matrix.. - Luján, Gurd, Freeman (2001)   (Correct)

....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 Fig. 11. Sequence diagram for jjAjj1 implemented at MA level with A dense and stored in dense format. 14 Method inlining [13, 21, 15, 18, 2, 6, 16, 25, 37] can be applied to eliminate the invocations by inserting the code of the invoked methods into the invoking methods. After applying method inlining, 6 , the statements inside the nested loop appear as shown in Figure 12. if (a instanceOf DenseProperty) first guard double aux; try if ....

Gerald Aigner and Urs Holzle. Eliminating virtual function calls in C++ programs. In Proceedings of the 10th European Conference on Object-Oriented Programming { ECOOP'96, volume 1098 of Lecture Notes in Computer Science, pages 142-166. Springer-Verlag, 1996.


On Minimal Overhead Operating Systems and.. - Gal.. (2001)   (1 citation)  (Correct)

....decision maker within the compiler. Although this approach is much faster at compile time, the gained benefits in code size are much lower. It also differs from our approach as it relies on integration into the compiler. The virtual function call elimination process for C by Aigner and Holzle [3] also deploys whole program optimization techniques but uses instrumented source code and a test run of the executable to gather input data for the optimization process. While this paper concentrates on runtime efficiency, it does not include the degree of program structure simplification as our ....

G. Aigner and U. Holzle. Eliminating Virtual Function Calls in C++ Programs. Technical Report TRCS 95-22, University of California, 1995.


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

....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 published after a draft of our paper was already submitted for publication) seems to be the most related work to that presented here. The main distinction between their approach and ours is that they use a source to source process to compile a baseline all in one C source into C ....

....C source into C optimized code, whereas we change an existing production compiler that compiles original source code and generates optimized code. Our solution is much more in the spirit of other compiler optimization techniques, and seems to be much more efficient than that proposed in [2]. To conclude, our work pioneers the use of an existing C compiler to close the whole loop of optimizing C virtual function calls: performing program analysis, evaluating the results of the analysis, feeding back the results to the compiler, and generating optimized virtual function calls ....

[Article contains additional citation context not shown here]

G. Aigner and U. Holzle. Eliminating Virtual Function Calls in C++ Programs. Technical Report TRCS 9522, Dept. of Computer Science, University of California, Santa Barbara, December 1995.


Design, Implementation, and Evaluation of.. - Ishizaki.. (1999)   (2 citations)  (Correct)

....language, dynamic method call is an important feature for its flexibility, and thus it is used frequently. On the other hand, it penalizes the performance of the program because of the overhead of method lookup. Many techniques for resolving this performance problem, such as type prediction [10, 11] and polymorphic inline cache [12] have been proposed. However, they incur overheads by requiring an additional runtime test. In our JIT compiler, we chose class hierarchy analysis (CHA) 13, 14] to improve the performance of dynamic method call. We will discuss the choice in more detail in ....

....of reducing the overhead of polymorphic method call. PIC compiles a dynamic method call as though it was being inlined into the context of the caller. The call site is patched to jump to a stub that conditionally executes the inlined code on the basis of the types of an object. Type prediction [10, 11] has also been proposed, with type analysis for languages supporting dynamic class loading. Type prediction predicts the type of an object, which are called frequently, at compile time. PIC and type prediction introduce a runtime test newly, since they are on the basis of the cache mechanism with ....

Gerald Aigner, and Urs Holzle: "Eliminating Virtual Function Calls in C++ Programs," In Proceedings of the 10th European Conference on Object-Oriented Programming -- ECOOP '96, volume 1098 of Lecture Notes in Computer Science, Springer-Verlag, pp. 142-166, 1996.


Quantifying and Evaluating the Space Overhead in C++ Memory.. - Sweeney, Burke (1999)   (Correct)

....for space constrained systems such as embedded and pervasive computing systems. Most previous work on efficient C implementation has focused either on implementing just one language feature, such as multiple inheritance [24, 22, 9, 10] or on reducing time overhead, such as for virtual dispatch [4, 11, 3, 6, 21, 8, 2]. In this paper, we quantify and evaluate the space overhead for three language features: virtual dispatch, virtual inheritance, and dynamic typing. We also study the space overhead due to the interaction between these features. Computing the space overhead for a memory layout requires computing ....

Gerald Aigner and Urs Holzle. Eliminating virtual function calls in C++ programs. In Proceedings of the Tenth European Conference on Object-Oriented Programming -- ECOOP'96, volume 1098 of Lecture Notes in Computer Science, pages 142--166, Linz, Austria, July 1996. Springer-Verlag.


A Study of Dead Data Members in C++ Applications - Sweeney, Tip (1998)   (14 citations)  (Correct)

....are pointers to objects are typically passed to delete in the enclosing class s destructor. Other system functions (e.g. strcpy) that are known not to affect some of their parameters, could be treated as a special case as well. 2 [1] procedure DetectUnusedDataMembers(Program P ) 2] begin [3] mark all data members in P initially as dead ; 4] mark all classes in P initially as not visited ; 5] construct the call graph G of program P ; 6] for each statement s in each function f in call graph G do [7] call ProcessStatement(s) 8] end for [9] for each union construct U in P ....

....classes for which a constructor call occurs in the application) and the number of data members that occur in used classes. Several of these benchmarks have been studied previously in the literature for other purposes (e.g. experimentation with virtual function call elimination algorithms) [5, 9, 8, 6, 12, 3]. The programs of Table 1 range from 606 to 58,296 lines of code, and contain between 10 to 268 classes, 5 and between 22 and 1052 data members. Some benchmarks (e.g. taldict, simulate, and hotwire) use class libraries that have been developed independently from the application. Several other ....

Aigner, G., and H olzle, U. Eliminating virtual function calls in C++ programs. In Proceedings of the Tenth European Conference on Object-Oriented Programming -- ECOOP'96 (Linz, Austria, July 1996), vol. 1098 of Lecture Notes in Computer Science, Springer-Verlag, pp. 142--166.


Class Hierarchy Specialization - Tip, Sweeney (1997)   (14 citations)  (Correct)

....reduce object size. ffl Creation and destruction of objects requires less time, due to reduced object size. Time requirements may also be reduced through caching paging effects. ffl Specialization may create new opportunities for existing optimizations such as virtual function call resolution [4, 9, 3, 8, 5]. To appear in the proceedings of the 12th Annual ACM Conference on Object Oriented Programming, Systems, Languages, and Applications (OOPSLA 97) October 5 8 1997, Atlanta, GA. ffl Specialization may be of use in program understanding and debugging tools. For example, specialization can be ....

AIGNER, G., AND H OLZLE, U. Eliminating virtual function calls in C++ programs. In Proceedings of the Tenth European Conference on Object-Oriented Programming (ECOOP'96) (Linz, Austria, July 1996), vol. 1098 of Lecture Notes in Computer Science, SpringerVerlag, pp. 142--166.


Code Specialization Based on Value Profiles - Muth, Watterson, Debray (2000)   (8 citations)  (Correct)

....in Section 2.4 in the context of loop unrolling) Some implementations of object oriented languages attempt to mitigate the high cost of dynamically dispatched calls using a limited form of value profile based specialization. The idea, referred to as type feedback or receiver class prediction [1, 14], is to monitor the targets of dynamically dispatched function calls, and to use this information to inline the code for frequently called targets. The main limitation of this approach is that the specialization is restricted to dynamically dispatched function calls, and so will not be applied to ....

G. Aigner and U. Holzle, "Eliminating Virtual Function Calls in C++ Programs", Proc. ECOOP '96, Springer Verlag LNCS vol. 1098, pp. 142--166.


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

....can be used to: 1) compact applications by removing methods that are never called, and (2) improve the eciency 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 object oriented languages[7, 8, 9, 10, 12, 14, 18, 16, 21, 24, 28, 29, 30]. The focus of this paper is the development and evaluation of a new simple and inexpensive technique for resolving virtual method calls in Java. A main design objective was to develop a technique that would produce a solution in one iteration and thus scales linearly in the size of the program. ....

....The results of Dean et al. 14] suggest that class hierarchy analysis is a good technique for resolving many method invocations for the Cecil language. Fernandez [21] implemented virtual call elimination and used an idea that is essentially Class Hierarchy Analysis (CHA) Aigner and H olzle [7] nd that type feedback and class hierarchy analysis are both e ective at resolving method invocations in C . Our work con rms that CHA does work well for Java bytecode, and we use CHA to get our original conservative call graph. However, our VTA methods can substantially improve the conservative ....

G. Aigner and U. Holzle. Eliminating virtual function calls in C++ programs. In P. Cointe, editor, ECOOP'96|Object-Oriented Programming, 10th European Conference, volume 1098 of Lecture Notes in Computer Science, pages 142-166, Linz, Austria, 8-12 Jul. 1996. Springer.


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

....they also detected polymorphic calls that visit many targets with a high degree of interleaving (the targets changes frequently in time) These branches require more sophisticated mechanisms to be accurately predicted. There are also have been several studies on the nature of polymorphic calls [19, 20, 110]. The most profound conclusion is that polymorphic call sites tend to visit only a few targets during the execution of the program, with only a few sites jumping to more than 4 targets. An empirical static analysis study of C function pointers was presented in [111, 112] Investigating function ....

[Article contains additional citation context not shown here]

G. Aigner and U. Holzle. Eliminating Virtual Function Calls in C++ Programs. In Proceedings of the 10th European Conference on Object-Oriented Programming, pages 142--166, July 1996.


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

....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 Simula) and thus this study bears some significance for ....

..... BTB 2bc predictors perform better in virtually all cases, with an average of 24.9 misprediction rate, compared to 28.1 for a standard BTB. Polymorphic branches occasionally switch their target but are often dominated by one most frequent target, a situation observed in object oriented programs [6][36] But even with two bit counters BTB accuracy is quite poor, ranging from average misprediction ratios of 20 in OO programs to 1 In conditional branch predictors, the latter strategy is implemented with a two bit saturating counter (2bc) hence the name. For an indirect branch, one bit ....

[Article contains additional citation context not shown here]

Gerald Aigner and Urs Hlzle. Eliminating Virtual Function Calls in C++ Programs. ECOOP `96 Conference Proceedings, Linz, Austria, Springer Verlag Lecture Notes in Computer Science, July 1996.


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

....benchmarks. Like Pande and Ryder [84, 85] Carini et al. 19] also integrate a type analysis into their flow sensitive alias analysis [13] Their goal is to resolve method invocations in C programs. Carini et al. do not evaluate their algorithm. In work concurrent to ours, Aigner and Holzle [5] evaluate two techniques for resolving method invocations in C programs: type feedback and type hierarchy analysis. They find that they are both effective at resolving method invocations. Chambers et al. 22] describe a range of transformations and analysis for resolving method invocations to ....

Aigner, G. and Holzle, U. Eliminating virtual function calls in C++ programs. In Proceedings of European Conference on Object-Oriented Programming, Linz, Austria, July 1996.


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

....calls to direct calls (ignoring other benefits such as inlining) and they did not test this hypothesis by implementing class prediction in a compiler. Aigner and Hlzle implemented a prototype system to compare class hierarchy analysis and profile guided receiverclass prediction for C programs [Aigner Hlzle 96] Their system works by first combining a C program composed of multiple source files to produce a single, monolithic C file. This file is then fed into their optimizer, which works as a source to source transformation, producing another C file (that has been optimized with some combination ....

Gerald Aigner and Urs Hlzle. Eliminating Virtual Function Calls in C++ Programs. In Proceedings ECOOP '96, Linz, Austria, August 1996. Springer-Verlag.


Improving the Accuracy of Indirect Branch Prediction via.. - Kalamatianos, Kaeli (1999)   (1 citation)  (Correct)

....algorithm takes a conservative approach and classifies them as MT, since their source statement or their usage is not known. Also, certain jsr instructions used to implement virtual function calls have only one possible target. There exist several algorithms for detecting those calls [24], 25] 26] We assume that when the compiler linker is able to detect those, it will transform them into direct function calls so that they will not affect indirect branch prediction. Since the version of the DEC C C compiler we use does not provide any such optimization, we again took a ....

G. Aigner and U. Holzle. Eliminating Virtual Function Calls in C++ Programs. In Proceedings of the 10th European Conference on Object-Oriented Programming, pages 142--166, July 1996.


Using Types to Analyze and Optimize Object-Oriented Programs - Diwan, McKinley, Moss (2001)   (6 citations)  (Correct)

....focus solely on analysis here. Plevyak and Chien discuss reasons for loss of type information, but do not present any results. We present detailed data giving reasons for loss of type information. In work done concurrently with ours, Bacon and Sweeney [Bacon and Sweeney 1996] and Aigner and Holzle [Aigner and Holzle 1996] evaluate techniques for resolving method invocations in C programs. Bacon and Sweeney evaluate three fast analyses, including type hierarchy analysis, for resolving method invocations in C programs. Unlike us, Bacon and Sweeney evaluate only flow insensitive analyses. Aigner and Holzle ....

Aigner, G. and H olzle, U. 1996. Eliminating virtual function calls in C++ programs. In Proceedings of European Conference on Object-Oriented Programming. Linz, Austria.


alto: A Platform for Object Code Modification - Muth (1999)   (8 citations)  (Correct)

....based on value profiles is not considered. Some implementations of object oriented languages attempt to mitigate the high cost of dynamically dispatched calls using a limited form of value profile based specialization. The idea referred to as type feedback or receiver class prediction [3, 41] is to monitor the targets of dynamically dispatched function calls, and to use this information to inline the code for frequently called targets. The main limitation of this approach 102 is that the specialization is restricted to dynamically dispatched function calls, and so will not be ....

Gerald Aigner and Urs Holzle. Eliminating virtual function calls in C++ programs. In Pierre Cointe, editor, ECOOP'96---Object-Oriented Programming, 10th European Conference, volume 1098 of Lecture Notes in Computer Science, pages 142--166, Linz, Austria, 8--12 July 1996. Springer.


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

....optimization barriers throughout the program. Virtual calls both defeat branch prediction (and thereby instruction pipelining) and inhibit inlining, blocking subsequent traditional intra procedural compiler optimizations [6, 14] Many compilers go to great lengths to eliminate virtual calls [1, 12, 13, 27]; some even make use of constrained specialization techniques [10, 20] such as customization [7] Standard compiler optimizations rely on static analysis; when the method referenced by a method call can be determined statically, the method call can be implemented using a direct call. Calls to ....

G. Aigner and U. H#lzle. Eliminating virtual function calls in C++ programs. In Proceedings of the European Conference on Object-oriented Programming (ECOOP'96), volume 1098 of Lecture Notes in Computer Science, pages 142166, Lisbon, Portugal, June 1996. Springer. RR n\Sigma3853 26 Ulrik Pagh Schultz, Julia L. Lawall, and Charles Consel


Improving Virtual Function Call Target Prediction via.. - Roth, Moshovos, Sohi (1999)   (6 citations)  (Correct)

.... PC INST arr[0] vtbl 8 jalr Print 10 arr[0] vtbl Print 9 arr[0] vtbl Valid 5 jalr Valid 6 51 arr[0] vtbl 4 50 arr[0] 3 2 arr[0] vtbl 8 jalr Print 10 arr[0] vtbl Print 9 arr[0] vtbl Valid 5 jalr Valid 6 arr[0] vtbl 4 10 59 9 5 6 51 4 50 3 80 80 81 arr[1] vtbl Valid 5 jalr Valid 6 arr[1] vtbl 4 arr[1] 3 5 6 3 50 arr[1] vtbl Valid 5 jalr Valid 6 arr[1] 3 (d) b) V p F p C p 81 4 arr[1] vtbl 4 1 2 3 I3(O) I8(V P ) I9(F P ) I19(C P ) F: may not exist at all. Pre computation relies on this separation to provide a timely ....

.... Print 10 arr[0] vtbl Print 9 arr[0] vtbl Valid 5 jalr Valid 6 51 arr[0] vtbl 4 50 arr[0] 3 2 arr[0] vtbl 8 jalr Print 10 arr[0] vtbl Print 9 arr[0] vtbl Valid 5 jalr Valid 6 arr[0] vtbl 4 10 59 9 5 6 51 4 50 3 80 80 81 arr[1] vtbl Valid 5 jalr Valid 6 arr[1] vtbl 4 arr[1] 3 5 6 3 50 arr[1] vtbl Valid 5 jalr Valid 6 arr[1] 3 (d) b) V p F p C p 81 4 arr[1] vtbl 4 1 2 3 I3(O) I8(V P ) I9(F P ) I19(C P ) F: may not exist at all. Pre computation relies on this separation to provide a timely predictions. A distance of only a few ....

[Article contains additional citation context not shown here]

G. Aigner and U. Hoelzle. Eliminating Virtual Function Calls in C++ Programs. In Proc. 10th European Conference on Object Oriented Programming, Jun. 1996.


Reconciling Responsiveness with Performance in Pure.. - Hölzle, Ungar   Self-citation (Hlzle)   (Correct)

....are reduced by inherently lower call frequencies. A recent prototype C compiler employing type feedback confirms this assumption, improving the performance of a suite of large C programs by a median of 20 while reducing the frequency of dynamically dispatched calls by a factor of five [Aigner and Hlzle 1995]. 4. Adaptive Optimization Exploratory programming environments (such as the Smalltalk programming environment) increase programmer productivity by giving immediate feedback for all programming actions. The pause free interaction allows the programmer to concentrate on the task at hand rather ....

.... the callers) As a result, its speedup over a system without type feedback was modest (about 11 ) Recently, type feedback combined with static compilation (i.e. based on off line profiles) has been shown to be effective for the pure object oriented language Cecil [Grove et al. 1995] and for C [Aigner and Hlzle 1995]. 34 The Apple Object Pascal linker [App88] turned dynamically dispatched calls into staticallybound calls if a type had exactly one implementation (e.g. the system contained only a CartesianPoint class and no PolarPoint class) Fernandez [Fernandez 1995] performs a similar optimization for ....

[Article contains additional citation context not shown here]

AIGNER, G. AND HLZLE, U., 1995. Eliminating Virtual Function Calls in C++ Programs. Technical Report TRCS 95-22, Department of Computer Science, UCSB.

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