Demo Data from EDBT 2026 / reviewers in the wild / expert
Thomas Kotzmann
dblp:04/3754
· DBLP profile ↗
3ranked-venue papers
3as first author
0since 2021 · last 2008
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 3 · 3 first-authorSoftware engineering, systems software and programming languages · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
1 paper |
Compilers and program optimization · 67% Runtime systems and virtual machines · 26% Programming languages and type systems · 8% |
Topics — the 6 heaviest of 6, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Compilers and program optimization › register allocation
linear scan register allocation |
0.1 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Compilers and program optimization
register allocation |
0.1 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Compilers and program optimization
intermediate representation |
0.0 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Programming languages and type systems › object-oriented programming
java |
0.0 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Compilers and program optimization › intermediate representation
static single assignment form |
0.0 | 1 | 2008 | Design of the Java HotSpot™ client compiler for Java 6 · ACM Trans. Archit. Code Optim. 2008 |
Methods — techniques the papers use, named apart from their topics
object inlining · 0.1escape analysis · 0.1array bounds check elimination · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2008 | Design of the Java HotSpot™ client compiler for Java 6abstractVersion 6 of Sun Microsystems' Java HotSpot™ VM ships with a redesigned version of the client just-in-time compiler that includes several research results of the last years. The client compiler is at the heart of the VM configuration used by default for interactive desktop applications. For such applications, low startup and pause times are more important than peak performance. This paper outlines the new architecture of the client compiler and shows how it interacts with the VM. It presents the intermediate representation that now uses static single-assignment (SSA) form and the linear scan algorithm for global register allocation. Efficient support for exception handling and deoptimization fulfills the demands that are imposed by the dynamic features of the Java programming language. The evaluation shows that the new client compiler generates better code in less time. The popular SPECjvm98 benchmark suite is executed 45% faster, while the compilation speed is also up to 40% better. This indicates that a carefully selected set of global optimizations can also be integrated in just-in-time compilers that focus on compilation speed and not on peak performance. In addition, the paper presents the impact of several optimizations on execution and compilation speed. As the source code is freely available, the Java HotSpot™ VM and the client compiler are the ideal basis for experiments with new feedback-directed optimizations in a production-level Java just-in-time compiler. The paper outlines research projects that add fast algorithms for escape analysis, automatic object inlining, and array bounds check elimination. Thomas Kotzmann, Christian Wimmer, Hanspeter Mössenböck, Thomas Rodriguez, Kenneth B. Russell |
ACM Trans. Archit. Code Optim. | 1 |
| 2007 | Run-Time Support for Optimizations Based on Escape AnalysisabstractWe implemented a new escape analysis algorithm for Sun Microsystems' Java HotSpottrade VM. The results are used to replace objects with scalar variables, to allocate objects on the stack, and to remove synchronization. This paper deals with the representation of optimized objects in the debugging information and with reallocation and garbage collection support for a safe execution of optimized methods. Assignments to fields of parameters that can refer to both stack and heap objects are associated with an extended write barrier which skips card marking for stack objects. The traversal of objects during garbage collection uses a wrapper that abstracts from stack objects and presents their pointer fields as root pointers to the garbage collector Thomas Kotzmann, Hanspeter Mössenböck |
CGO | 1 |
| 2005 | Escape analysis in the context of dynamic compilation and deoptimizationabstractIn object-oriented programming languages, an object is said to escape the method or thread in which it was created if it can also be accessed by other methods or threads. Knowing which objects do not escape allows a compiler to perform aggressive optimizations.This paper presents a new intraprocedural and interprocedural algorithm for escape analysis in the context of dynamic compilation where the compiler has to cope with dynamic class loading and deoptimization. It was implemented for Sun Microsystems' Java HotSpot™ client compiler and operates on an intermediate representation in SSA form. We introduce equi-escape sets for the efficient propagation of escape information between related objects. The analysis is used for scalar replacement of fields and synchronization removal, as well as for stack allocation of objects and fixed-sized arrays. The results of the interprocedural analysis support the compiler in inlining decisions and allow actual parameters to be allocated on the caller stack.Under certain circumstances, the Java HotSpot™ VM is forced to stop executing a method's machine code and transfer control to the interpreter. This is called deoptimization. Since the interpreter does not know about the scalar replacement and synchronization removal performed by the compiler, the deoptimization framework was extended to reallocate and relock objects on demand. Thomas Kotzmann, Hanspeter Mössenböck |
VEE | 1 |