Urs Hölzle - Academia.edu (original) (raw)

Papers by Urs Hölzle

Research paper thumbnail of Adaptive optimization for self: reconciling high performance with exploratory programming

Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...

Research paper thumbnail of A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance

Conference on Object-Oriented Programming Systems, Languages, and Applications, 1994

Programming systems should be both re- sponsive (to support rapid development) and efficient (to ... more Programming systems should be both re- sponsive (to support rapid development) and efficient (to complete computations quickly). Pure object-ori- ented languages are harder to implement efficiently since they need optimization to achieve good perfor- mance. Unfortunately, optimization conflicts with in- teractive responsiveness because it tends to produce long compilation pauses, leading to unresponsive pro- gramming environments. Therefore, to achieve good

Research paper thumbnail of Integrating Independently-Developed Components in Object-Oriented Languages

Lecture Notes in Computer Science, 1993

... 1 type SubA: BaseA { “One of many subtypes of BaseA” } methods msubaL, msuba2, . ... Typing m... more ... 1 type SubA: BaseA { “One of many subtypes of BaseA” } methods msubaL, msuba2, . ... Typing mechanisms can be used to view an object from different viewpoints. For exam-ple, in any language with subtyping, an object of type SubA can also be viewed as being of type BaseA. ...

Research paper thumbnail of Type feedback vs. concrete type inference

Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications - OOPSLA '95, 1995

Two promising optimization techniques for object-oriented languages are type feedback (profile-ba... more Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 S's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the

Research paper thumbnail of Update on Google Wave

Research paper thumbnail of Powering a Google search

Research paper thumbnail of Method and apparatus for implementing multiple return sites

Research paper thumbnail of Method and apparatus for implementing fast subclass and subtype checks

Research paper thumbnail of Static binding of dynamically dispatched calls in the presence of dynamic linking and loading

Research paper thumbnail of Inline database for receiver types in object-oriented systems

Research paper thumbnail of Method and apparatus for performing byte-code optimization during pauses

Research paper thumbnail of Inline database for receiver types in object-oriented systems

Research paper thumbnail of Brawny cores still beat wimpy cores, most of the time

... In a limit case, the amount of inherently serial work performed on behalf of a user request b... more ... In a limit case, the amount of inherently serial work performed on behalf of a user request by slow single-threaded cores will dominate overall execution time. Cost numbers used bywimpy-core evangelists always exclude software development costs. ...

Research paper thumbnail of A fast write barrier for generational garbage collectors

Generational garbage collectors need to keep track of references from older to younger generation... more Generational garbage collectors need to keep track of references from older to younger generations so that younger generations can be garbage-collected without inspecting every object in the older generation (s)[LH83],[Ung86]. The set of locations potentially containing ...

Research paper thumbnail of Adaptive optimization for SELF: reconciling high performance with exploratory programming

Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...

Research paper thumbnail of Optimizing dynamically-typed object-oriented languages with polymorphic inline caches

Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message ... more Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.

Research paper thumbnail of A study of the Allocation Behavior of the SPECjvm98 Java Benchmarks

Lecture Notes in Computer Science, 1999

We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmar... more We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmark suite. Most of the programs are real- world applications with high demands on the memory system. For each program, we measured as much low level data as possible, including age and size distribution, type distribution, and the overhead of object alignment. Among

Research paper thumbnail of Eliminating virtual function calls in C++ programs

Lecture Notes in Computer Science, 1996

143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods o... more 143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods omitted) ) class PolarPoint : Point { float rho, theta; virtual float get_x() {return rho * cos(theta);} (other methods omitted) } Since p could refer to either a CartesianPoint or a ...

Research paper thumbnail of Multi-stage Cascaded Prediction

Lecture Notes in Computer Science, 1999

Research paper thumbnail of A third-generation SELF implementation

ACM SIGPLAN Notices, 1994

Research paper thumbnail of Adaptive optimization for self: reconciling high performance with exploratory programming

Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...

Research paper thumbnail of A Third-Generation SELF Implementation: Reconsiling Responsiveness with Performance

Conference on Object-Oriented Programming Systems, Languages, and Applications, 1994

Programming systems should be both re- sponsive (to support rapid development) and efficient (to ... more Programming systems should be both re- sponsive (to support rapid development) and efficient (to complete computations quickly). Pure object-ori- ented languages are harder to implement efficiently since they need optimization to achieve good perfor- mance. Unfortunately, optimization conflicts with in- teractive responsiveness because it tends to produce long compilation pauses, leading to unresponsive pro- gramming environments. Therefore, to achieve good

Research paper thumbnail of Integrating Independently-Developed Components in Object-Oriented Languages

Lecture Notes in Computer Science, 1993

... 1 type SubA: BaseA { “One of many subtypes of BaseA” } methods msubaL, msuba2, . ... Typing m... more ... 1 type SubA: BaseA { “One of many subtypes of BaseA” } methods msubaL, msuba2, . ... Typing mechanisms can be used to view an object from different viewpoints. For exam-ple, in any language with subtyping, an object of type SubA can also be viewed as being of type BaseA. ...

Research paper thumbnail of Type feedback vs. concrete type inference

Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications - OOPSLA '95, 1995

Two promising optimization techniques for object-oriented languages are type feedback (profile-ba... more Two promising optimization techniques for object-oriented languages are type feedback (profile-based receiver class prediction) and concrete type inference (static analysis). We directly compare the two techniques, evaluating their effectiveness on a suite of 23 S's automatic coercion of machine integers to arbitrary-precision integers upon overflow confounds type inference and slows down arithmetic-intensive benchmarks.We discuss several other issues which, given the

Research paper thumbnail of Update on Google Wave

Research paper thumbnail of Powering a Google search

Research paper thumbnail of Method and apparatus for implementing multiple return sites

Research paper thumbnail of Method and apparatus for implementing fast subclass and subtype checks

Research paper thumbnail of Static binding of dynamically dispatched calls in the presence of dynamic linking and loading

Research paper thumbnail of Inline database for receiver types in object-oriented systems

Research paper thumbnail of Method and apparatus for performing byte-code optimization during pauses

Research paper thumbnail of Inline database for receiver types in object-oriented systems

Research paper thumbnail of Brawny cores still beat wimpy cores, most of the time

... In a limit case, the amount of inherently serial work performed on behalf of a user request b... more ... In a limit case, the amount of inherently serial work performed on behalf of a user request by slow single-threaded cores will dominate overall execution time. Cost numbers used bywimpy-core evangelists always exclude software development costs. ...

Research paper thumbnail of A fast write barrier for generational garbage collectors

Generational garbage collectors need to keep track of references from older to younger generation... more Generational garbage collectors need to keep track of references from older to younger generations so that younger generations can be garbage-collected without inspecting every object in the older generation (s)[LH83],[Ung86]. The set of locations potentially containing ...

Research paper thumbnail of Adaptive optimization for SELF: reconciling high performance with exploratory programming

Object-oriented programming languages confer many benefits, including abstraction, which lets the... more Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hidethe details of an object's implementation from the object's clients. Unfortunately, crossing abstraction boundariesoften incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstraction,while desirable from a design standpoint, may be impractical when it leads to inefficient programs.Aggressive compiler optimizations can reduce...

Research paper thumbnail of Optimizing dynamically-typed object-oriented languages with polymorphic inline caches

Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message ... more Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.

Research paper thumbnail of A study of the Allocation Behavior of the SPECjvm98 Java Benchmarks

Lecture Notes in Computer Science, 1999

We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmar... more We present an analysis of the memory usage for six of the Java programs in the SPECjvm98 benchmark suite. Most of the programs are real- world applications with high demands on the memory system. For each program, we measured as much low level data as possible, including age and size distribution, type distribution, and the overhead of object alignment. Among

Research paper thumbnail of Eliminating virtual function calls in C++ programs

Lecture Notes in Computer Science, 1996

143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods o... more 143 class CartesianPoint : Point { float x, y; virtual float get_x() {return x;} (other methods omitted) ) class PolarPoint : Point { float rho, theta; virtual float get_x() {return rho * cos(theta);} (other methods omitted) } Since p could refer to either a CartesianPoint or a ...

Research paper thumbnail of Multi-stage Cascaded Prediction

Lecture Notes in Computer Science, 1999

Research paper thumbnail of A third-generation SELF implementation

ACM SIGPLAN Notices, 1994