Christian Häubl

dblp:85/2414 · DBLP profile ↗
← Back
5ranked-venue papers
4as first author
1since 2021 · last 2026
0009-0003-5147-5364ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 3 first-author · 1 since 2021Systems, architecture and hardware · 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
Runtime systems and virtual machines · 61% Programming languages and type systems · 30% Compilers and program optimization · 9%

Topics — the 4 heaviest of 4, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › control structures
exception handling
0.212014
Trace transitioning and exception handling in a trace-based JIT compiler for java · ACM Trans. Archit. Code Optim. 2014
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.212014
Trace transitioning and exception handling in a trace-based JIT compiler for java · ACM Trans. Archit. Code Optim. 2014
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
trace-based compilation
0.212014
Trace transitioning and exception handling in a trace-based JIT compiler for java · ACM Trans. Archit. Code Optim. 2014
Compilers and program optimization
code bloat
0.112014
Trace transitioning and exception handling in a trace-based JIT compiler for java · ACM Trans. Archit. Code Optim. 2014
YearPublicationVenuePosition
2026 A Unifying Approach to Supporting Multiple Garbage Collectors in AOT-Compiled Binaries
Thomas Schrott, Christian Häubl, Hanspeter Mössenböck, Stefan Marr
MPLR2
2014 Trace transitioning and exception handling in a trace-based JIT compiler for java
abstract
Trace-based Just-In-Time (JIT) compilation generates machine code for frequently executed paths (so-called traces) instead of whole methods. While this has several advantages, it complicates invocation of compiled traces as well as exception handling, so that previous trace-based compilers limited the way in which traces could be invoked. We present a significantly enhanced trace-based compiler where arbitrary transitions between interpreted and compiled traces are possible. For that, we introduce suitable trace calling conventions and extend exception handling to work both within traces and across trace boundaries. Furthermore, we use the recorded trace information for optimizations and combine the tracing ideas with ideas from partial-method compilation to avoid code bloat. An extensive evaluation with the benchmark suites DaCapo 9.12 Bach and SPECjvm2008 shows that our trace-based compiler achieves up to 59% higher peak performance than the method-based Java HotSpot client compiler. On a few benchmarks, our fairly simple trace-based compiler shows a higher peak performance than the Java HotSpot server compiler, which is one of today's best optimizing JIT compilers for Java.
Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
ACM Trans. Archit. Code Optim.1
2013 Context-sensitive trace inlining for Java
abstract
Method inlining is one of the most important optimizations in method-based just-in-time (JIT) compilers. It widens the compilation scope and therefore allows optimizing multiple methods as a whole, which increases the performance. However, if method inlining is used too frequently, the compilation time increases and too much machine code is generated. This has negative effects on the performance. Trace-based JIT compilers only compile frequently executed paths, so-called traces, instead of whole methods. This may result in faster compilation, less generated machine code, and better optimized machine code. In the previous work, we implemented a trace recording infrastructure and a trace-based compiler for [Formula: see text], by modifying the Java HotSpot VM. Based on this work, we evaluate the effect of trace inlining on the performance and the amount of generated machine code. Trace inlining has several major advantages when compared to method inlining. First, trace inlining is more selective than method inlining, because only frequently executed paths are inlined. Second, the recorded traces may capture information about virtual calls, which simplify inlining. A third advantage is that trace information is context sensitive so that different method parts can be inlined depending on the specific call site. These advantages allow more aggressive inlining while the amount of generated machine code is still reasonable. We evaluate several inlining heuristics on the benchmark suites DaCapo 9.12 Bach, SPECjbb2005, and SPECjvm2008 and show that our trace-based compiler achieves an up to 51% higher peak performance than the method-based Java HotSpot client compiler. Furthermore, we show that the large compilation scope of our trace-based compiler has a positive effect on other compiler optimizations such as constant folding or null check elimination.
Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
Comput. Lang. Syst. Struct.1
2011 Erratum to "Compact and Efficient Strings for Java" [Science of Computer Programming 75 (2010) 1077-1094]
Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
Sci. Comput. Program.1
2010 Compact and efficient strings for Java
Christian Häubl, Christian Wimmer, Hanspeter Mössenböck
Sci. Comput. Program.1