<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.jvmlangsummit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChristianWimmer</id>
	<title>JVMLangSummit - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jvmlangsummit.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=ChristianWimmer"/>
	<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Special:Contributions/ChristianWimmer"/>
	<updated>2026-07-28T15:03:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=File:Coroutines.pdf&amp;diff=517</id>
		<title>File:Coroutines.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=File:Coroutines.pdf&amp;diff=517"/>
		<updated>2010-07-27T17:29:27Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Coroutines_for_the_Java_Platform&amp;diff=516</id>
		<title>Coroutines for the Java Platform</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Coroutines_for_the_Java_Platform&amp;diff=516"/>
		<updated>2010-07-27T17:24:37Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Speaker: Lukas Stadler&lt;br /&gt;
;Project: http://openjdk.java.net/projects/mlvm/&lt;br /&gt;
;Slides: [[Image:Coroutines.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Abstract===&lt;br /&gt;
&lt;br /&gt;
Coroutines are an elegant and efficient implementation construct for numerous algorithmic problems. As more and more languages are implemented on top of the Java Virtual Machine, many of which provide coroutine-like language features, the need for a coroutine implementation has emerged. We present an approach to coroutine implementation that efficiently handles a large range of workloads. It imposes no overhead for applications that do not use coroutines and performs well for applications that do. We have implemented our approach for the Java HotSpot Virtual Machine as part of the MLVM project.&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=511</id>
		<title>Register Allocation on SSA form for Java Just-in-Time Compilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=511"/>
		<updated>2010-07-26T20:48:46Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Speaker: Christian Wimmer, University of California, Irvine&lt;br /&gt;
;Homepage: http://www.christianwimmer.at/&lt;br /&gt;
;Slides: [[Image:LinearScanSSA.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Abstract===&lt;br /&gt;
&lt;br /&gt;
Register allocation is one of the most important, but also the most expensive compiler optimizations. This is especially critical for Java just-in-time compilation where compilation time adds to run time, and led to different register allocation algorithms that trade code quality for compilation time. Static single assignment (SSA) form is a type of intermediate representation that simplifies many compiler optimizations. However, only recently it was discovered that SSA form is also beneficial for register allocation. The two main register allocation algorithms, graph coloring and linear scan, are now available in versions that operate directly on&lt;br /&gt;
SSA form. This talk presents the details of the changes that are necessary for this, and explains the benefits gained by SSA form. Our implementation for the Java HotSpot VM shows that register allocation gets both faster and simpler.&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=510</id>
		<title>Register Allocation on SSA form for Java Just-in-Time Compilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=510"/>
		<updated>2010-07-26T20:48:16Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Speaker: Christian Wimmer, University of California, Irvine&lt;br /&gt;
;Homepage: http://www.christianwimmer.at/&lt;br /&gt;
;Slides: [[LinearScanSSA.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Abstract===&lt;br /&gt;
&lt;br /&gt;
Register allocation is one of the most important, but also the most expensive compiler optimizations. This is especially critical for Java just-in-time compilation where compilation time adds to run time, and led to different register allocation algorithms that trade code quality for compilation time. Static single assignment (SSA) form is a type of intermediate representation that simplifies many compiler optimizations. However, only recently it was discovered that SSA form is also beneficial for register allocation. The two main register allocation algorithms, graph coloring and linear scan, are now available in versions that operate directly on&lt;br /&gt;
SSA form. This talk presents the details of the changes that are necessary for this, and explains the benefits gained by SSA form. Our implementation for the Java HotSpot VM shows that register allocation gets both faster and simpler.&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=File:LinearScanSSA.pdf&amp;diff=509</id>
		<title>File:LinearScanSSA.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=File:LinearScanSSA.pdf&amp;diff=509"/>
		<updated>2010-07-26T20:47:35Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=508</id>
		<title>Register Allocation on SSA form for Java Just-in-Time Compilation</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Register_Allocation_on_SSA_form_for_Java_Just-in-Time_Compilation&amp;diff=508"/>
		<updated>2010-07-26T20:46:58Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Speaker: Christian Wimmer, University of California, Irvine&lt;br /&gt;
;Homepage: http://www.christianwimmer.at/&lt;br /&gt;
;Slides: [[Image:LinearScanSSA.pdf]]&lt;br /&gt;
&lt;br /&gt;
===Abstract===&lt;br /&gt;
&lt;br /&gt;
Register allocation is one of the most important, but also the most expensive compiler optimizations. This is especially critical for Java just-in-time compilation where compilation time adds to run time, and led to different register allocation algorithms that trade code quality for compilation time. Static single assignment (SSA) form is a type of intermediate representation that simplifies many compiler optimizations. However, only recently it was discovered that SSA form is also beneficial for register allocation. The two main register allocation algorithms, graph coloring and linear scan, are now available in versions that operate directly on&lt;br /&gt;
SSA form. This talk presents the details of the changes that are necessary for this, and explains the benefits gained by SSA form. Our implementation for the Java HotSpot VM shows that register allocation gets both faster and simpler.&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=344</id>
		<title>Trace-based JIT</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=344"/>
		<updated>2009-09-17T21:19:29Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: /* Trace-based JIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trace-based JIT ==&lt;br /&gt;
Christian Wimmer, University of California, Irvine&lt;br /&gt;
&lt;br /&gt;
; Project: Dynamic feedback-oriented optimizations in Java VMs&lt;br /&gt;
; Homepage: http://www.christianwimmer.at/&lt;br /&gt;
; Slides: [[Image:TraceCompilation.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Trace-Based Just-in-Time Compilation — Christian Wimmer&lt;br /&gt;
&lt;br /&gt;
The execution model of Java is ideally suited for dynamic optimizations at run time. This allows novel feedback-directed optimizations that are not possible in traditional static compilers. However, current just-in-time compilers still inherit their basic structure from static compilers: the granularity of compilation are methods. Switching between the interpreter and compiled code is still mostly done when methods are called. In contrast, trace-based compilation focuses only on code that has shown to be frequently executed. The compiler operates on execution traces recorded at run time. It not only allows more aggressive optimizations of Java code, but is also well suited for dynamic languages because it simplifies the integration of type information gathered at run time. This talk introduces trace compilation, presents our recent advances, and presents optimizations that are based on this compilation approach.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current Status =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Future =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Key Issues for Discussion =&lt;br /&gt;
''(please expand cooperatively)''&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=File:TraceCompilation.pdf&amp;diff=343</id>
		<title>File:TraceCompilation.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=File:TraceCompilation.pdf&amp;diff=343"/>
		<updated>2009-09-17T21:16:31Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=342</id>
		<title>Trace-based JIT</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=342"/>
		<updated>2009-09-17T21:14:04Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: /* Trace-based JIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trace-based JIT ==&lt;br /&gt;
Christian Wimmer, UC-Irvine&lt;br /&gt;
&lt;br /&gt;
; Project: &lt;br /&gt;
; Blog: [http://www.christianwimmer.at]&lt;br /&gt;
; Slides: [[Image:TraceCompilation.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Trace-Based Just-in-Time Compilation — Christian Wimmer&lt;br /&gt;
&lt;br /&gt;
The execution model of Java is ideally suited for dynamic optimizations at run time. This allows novel feedback-directed optimizations that are not possible in traditional static compilers. However, current just-in-time compilers still inherit their basic structure from static compilers: the granularity of compilation are methods. Switching between the interpreter and compiled code is still mostly done when methods are called. In contrast, trace-based compilation focuses only on code that has shown to be frequently executed. The compiler operates on execution traces recorded at run time. It not only allows more aggressive optimizations of Java code, but is also well suited for dynamic languages because it simplifies the integration of type information gathered at run time. This talk introduces trace compilation, presents our recent advances, and presents optimizations that are based on this compilation approach.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current Status =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Future =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Key Issues for Discussion =&lt;br /&gt;
''(please expand cooperatively)''&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=341</id>
		<title>Trace-based JIT</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=341"/>
		<updated>2009-09-17T21:13:41Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: /* Trace-based JIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trace-based JIT ==&lt;br /&gt;
Christian Wimmer, UC-Irvine&lt;br /&gt;
&lt;br /&gt;
; Project: &lt;br /&gt;
; Blog: [http://www.christianwimmer.at|http://www.christianwimmer.at]&lt;br /&gt;
; Slides: [[Image:TraceCompilation.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Trace-Based Just-in-Time Compilation — Christian Wimmer&lt;br /&gt;
&lt;br /&gt;
The execution model of Java is ideally suited for dynamic optimizations at run time. This allows novel feedback-directed optimizations that are not possible in traditional static compilers. However, current just-in-time compilers still inherit their basic structure from static compilers: the granularity of compilation are methods. Switching between the interpreter and compiled code is still mostly done when methods are called. In contrast, trace-based compilation focuses only on code that has shown to be frequently executed. The compiler operates on execution traces recorded at run time. It not only allows more aggressive optimizations of Java code, but is also well suited for dynamic languages because it simplifies the integration of type information gathered at run time. This talk introduces trace compilation, presents our recent advances, and presents optimizations that are based on this compilation approach.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current Status =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Future =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Key Issues for Discussion =&lt;br /&gt;
''(please expand cooperatively)''&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=340</id>
		<title>Trace-based JIT</title>
		<link rel="alternate" type="text/html" href="https://wiki.jvmlangsummit.com/index.php?title=Trace-based_JIT&amp;diff=340"/>
		<updated>2009-09-17T21:12:16Z</updated>

		<summary type="html">&lt;p&gt;ChristianWimmer: /* Trace-based JIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trace-based JIT ==&lt;br /&gt;
Christian Wimmer, UC-Irvine&lt;br /&gt;
&lt;br /&gt;
; Project: &lt;br /&gt;
; Blog: [http://www.christianwimmer.at]&lt;br /&gt;
; Slides: [[File:TraceCompilation.pdf]]&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Trace-Based Just-in-Time Compilation — Christian Wimmer&lt;br /&gt;
&lt;br /&gt;
The execution model of Java is ideally suited for dynamic optimizations at run time. This allows novel feedback-directed optimizations that are not possible in traditional static compilers. However, current just-in-time compilers still inherit their basic structure from static compilers: the granularity of compilation are methods. Switching between the interpreter and compiled code is still mostly done when methods are called. In contrast, trace-based compilation focuses only on code that has shown to be frequently executed. The compiler operates on execution traces recorded at run time. It not only allows more aggressive optimizations of Java code, but is also well suited for dynamic languages because it simplifies the integration of type information gathered at run time. This talk introduces trace compilation, presents our recent advances, and presents optimizations that are based on this compilation approach.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Current Status =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Future =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Key Issues for Discussion =&lt;br /&gt;
''(please expand cooperatively)''&lt;/div&gt;</summary>
		<author><name>ChristianWimmer</name></author>
		
	</entry>
</feed>