• Skip to content (access key 1)
  • Skip to search (access key 7)
FWF — Austrian Science Fund
  • Go to overview page Discover

    • Research Radar
      • Research Radar Archives 1974–1994
    • Discoveries
      • Emmanuelle Charpentier
      • Adrian Constantin
      • Monika Henzinger
      • Ferenc Krausz
      • Wolfgang Lutz
      • Walter Pohl
      • Christa Schleper
      • Elly Tanaka
      • Anton Zeilinger
    • Impact Stories
      • Verena Gassner
      • Wolfgang Lechner
      • Georg Winter
    • scilog Magazine
    • Austrian Science Awards
      • FWF Wittgenstein Awards
      • FWF ASTRA Awards
      • FWF START Awards
      • Award Ceremony
    • excellent=austria
      • Clusters of Excellence
      • Emerging Fields
    • In the Spotlight
      • 40 Years of Erwin Schrödinger Fellowships
      • Quantum Austria
    • Dialogs and Talks
      • think.beyond Summit
    • Knowledge Transfer Events
    • E-Book Library
  • Go to overview page Funding

    • Portfolio
      • excellent=austria
        • Clusters of Excellence
        • Emerging Fields
      • Projects
        • Principal Investigator Projects
        • Principal Investigator Projects International
        • Clinical Research
        • 1000 Ideas
        • Arts-Based Research
        • FWF Wittgenstein Award
      • Careers
        • ESPRIT
        • FWF ASTRA Awards
        • Erwin Schrödinger
        • doc.funds
        • doc.funds.connect
      • Collaborations
        • Specialized Research Groups
        • Special Research Areas
        • Research Groups
        • International – Multilateral Initiatives
        • #ConnectingMinds
      • Communication
        • Top Citizen Science
        • Science Communication
        • Book Publications
        • Digital Publications
        • Open-Access Block Grant
      • Subject-Specific Funding
        • AI Mission Austria
        • Belmont Forum
        • ERA-NET HERA
        • ERA-NET NORFACE
        • ERA-NET QuantERA
        • ERA-NET TRANSCAN
        • Alternative Methods to Animal Testing
        • European Partnership Biodiversa+
        • European Partnership BrainHealth
        • European Partnership ERA4Health
        • European Partnership ERDERA
        • European Partnership EUPAHW
        • European Partnership FutureFoodS
        • European Partnership OHAMR
        • European Partnership PerMed
        • European Partnership Water4All
        • Gottfried and Vera Weiss Award
        • netidee SCIENCE
        • Herzfelder Foundation Projects
        • Quantum Austria
        • Rückenwind Funding Bonus
        • WE&ME Award
        • Zero Emissions Award
      • International Collaborations
        • Belgium/Flanders
        • Germany
        • France
        • Italy/South Tyrol
        • Japan
        • Luxembourg
        • Poland
        • Switzerland
        • Slovenia
        • Taiwan
        • Tyrol–South Tyrol–Trentino
        • Czech Republic
        • Hungary
    • Step by Step
      • Find Funding
      • Submitting Your Application
      • International Peer Review
      • Funding Decisions
      • Carrying out Your Project
      • Closing Your Project
      • Further Information
        • Integrity and Ethics
        • Inclusion
        • Applying from Abroad
        • Personnel Costs
        • PROFI
        • Final Project Reports
        • Final Project Report Survey
    • FAQ
      • Project Phase PROFI
      • Project Phase Ad Personam
      • Expiring Programs
        • Elise Richter and Elise Richter PEEK
        • FWF START Awards
  • Go to overview page About Us

    • Mission Statement
    • FWF Video
    • Values
    • Facts and Figures
    • Annual Report
    • What We Do
      • Research Funding
        • Matching Funds Initiative
      • International Collaborations
      • Studies and Publications
      • Equal Opportunities and Diversity
        • Objectives and Principles
        • Measures
        • Creating Awareness of Bias in the Review Process
        • Terms and Definitions
        • Your Career in Cutting-Edge Research
      • Open Science
        • Open-Access Policy
          • Open-Access Policy for Peer-Reviewed Publications
          • Open-Access Policy for Peer-Reviewed Book Publications
          • Open-Access Policy for Research Data
        • Research Data Management
        • Citizen Science
        • Open Science Infrastructures
        • Open Science Funding
      • Evaluations and Quality Assurance
      • Academic Integrity
      • Science Communication
      • Philanthropy
      • Sustainability
    • History
    • Legal Basis
    • Organization
      • Executive Bodies
        • Executive Board
        • Supervisory Board
        • Assembly of Delegates
        • Scientific Board
        • Juries
      • FWF Office
    • Jobs at FWF
  • Go to overview page News

    • News
    • Press
      • Logos
    • Calendar
      • Post an Event
      • FWF Informational Events
    • Job Openings
      • Enter Job Opening
    • Newsletter
  • Discovering
    what
    matters.

    FWF-Newsletter Press-Newsletter Calendar-Newsletter Job-Newsletter scilog-Newsletter

    SOCIAL MEDIA

    • LinkedIn, external URL, opens in a new window
    • , external URL, opens in a new window
    • Facebook, external URL, opens in a new window
    • Instagram, external URL, opens in a new window
    • YouTube, external URL, opens in a new window

    SCILOG

    • Scilog — The science magazine of the Austrian Science Fund (FWF)
  • elane login, external URL, opens in a new window
  • Scilog external URL, opens in a new window
  • de Wechsle zu Deutsch

  

Generalization of Just-in-Time Trace Compilation for Java

Generalization of Just-in-Time Trace Compilation for Java

Hanspeter Mössenböck (ORCID: )
  • Grant DOI 10.55776/P22493
  • Funding program Principal Investigator Projects
  • Status ended
  • Start July 1, 2010
  • End September 30, 2013
  • Funding amount € 109,704
  • Project website

Disciplines

Computer Sciences (100%)

Keywords

    Just-In-Time Compilation, Virtual Machines, Trace Compilation, Java, Compiler Optimizations

Abstract Final report

Java source code is compiled to machine-independent bytecodes that are interpreted by a virtual machine. At run time, modern Java VMs use a just-in-time compiler (JIT compiler) to compile the most frequently executed methods to machine code while other methods continue to run in the interpreter. This leads to a good trade-off between execution speed and compilation overhead. As a further step in the same direction, Gal et al. recently proposed to make the unit of compilation even smaller, i.e. to compile only certain paths through frequently executing loops while the rest of the program is interpreted. This is called trace compilation. It further reduces compilation times, allows for simpler and more aggressive optimizations, and makes compilers simple enough to run on resource-constrained devices. Currently, trace compilation is restricted to paths through loops. We believe that this does not exploit its full potential. There are also paths outside of loops which are executed frequently enough to justify their compilation to machine code. In other words, the concept of trace compilation needs to be generalized. The research goals of our project are therefore (1) to generalize the concept of the trace compilation by allowing traces to start and end anywhere in a program and by using techniques to split, merge, and glue traces together, (2) to abolish methods as execution units in compiled code and to replace them by traces that call each other using appropriate trace calling conventions, and (3) to investigate how traditional optimization techniques can be adapted and simplified for trace compilation. We plan to integrate trace compilation into the Java HotSpot VM of Sun Microsystems, which is available from the open-source project OpenJDK. It is one of the fastest Java VMs available, so the resulting implementation will show whether trace compilation can compete or even outperform traditional compilation approaches. In this case, our project could lead to a paradigm change in just-in-time compilation.

Java is a modern and widely used programming language that allows the development of programs which run on a large variety of computersfrom mobile phones to enterprise servers. In order to achieve platform independence, Java programs are usually interpreted by a virtual machine. The downside to this is that interpretation is slow. Thus, virtual machines try to compile the most frequently executed program paths into efficient machine code. This is called just-in-time compilation or JIT compilation.We use a variant of JIT compilation in which we measure the execution frequencies of individual program paths (so-called traces) and compile the most frequently executed traces to machine code. This is called trace compilation. Since there are usually just a few frequent paths in any program their compilation tends to be fast. Fast compilation, however, leads to fast overall run times, because compilation happens at run time.In contrast to traditional trace compilers we do not only compile traces within loops but also traces that are outside of loops if they are frequent enough. In our approach, a path can also extend across several methods. As a special result of our research we developed a new context-sensitive technique for inlining paths from sub-methods into calling methods.Measurements have shown that our simple trace-based compiler generates code which is more efficient than the code generated by simple traditional JIT compilers. In some benchmarks our compiler even outperformed one of today's best Java JIT compilers while needing less than 10% of its compilation time.

Research institution(s)
  • Universität Linz - 100%
International project participants
  • Christian Wimmer, University of California Irvine - USA

Research Output

  • 50 Citations
  • 5 Publications
Publications
  • 2014
    Title Trace transitioning and exception handling in a trace-based JIT compiler for java
    DOI 10.1145/2579673
    Type Journal Article
    Author Häubl C
    Journal ACM Transactions on Architecture and Code Optimization (TACO)
    Pages 1-26
    Link Publication
  • 2013
    Title Context-sensitive trace inlining for Java
    DOI 10.1016/j.cl.2013.04.002
    Type Journal Article
    Author Häubl C
    Journal Computer Languages, Systems & Structures
    Pages 123-141
    Link Publication
  • 2012
    Title Evaluation of trace inlining heuristics for Java
    DOI 10.1145/2245276.2232084
    Type Conference Proceeding Abstract
    Author Häubl C
    Pages 1871-1876
  • 2011
    Title Trace-based compilation for the Java HotSpot virtual machine
    DOI 10.1145/2093157.2093176
    Type Conference Proceeding Abstract
    Author Häubl C
    Pages 129-138
  • 2013
    Title Deriving code coverage information from profiling data recorded for a trace-based just-in-time compiler
    DOI 10.1145/2500828.2500829
    Type Conference Proceeding Abstract
    Author Häubl C
    Pages 1-12
    Link Publication

Discovering
what
matters.

Newsletter

FWF-Newsletter Press-Newsletter Calendar-Newsletter Job-Newsletter scilog-Newsletter

Contact

Austrian Science Fund (FWF)
Georg-Coch-Platz 2
(Entrance Wiesingerstraße 4)
1010 Vienna

office(at)fwf.ac.at
+43 1 505 67 40

General information

  • Job Openings
  • Jobs at FWF
  • Press
  • Philanthropy
  • scilog
  • FWF Office
  • Social Media Directory
  • LinkedIn, external URL, opens in a new window
  • , external URL, opens in a new window
  • Facebook, external URL, opens in a new window
  • Instagram, external URL, opens in a new window
  • YouTube, external URL, opens in a new window
  • Cookies
  • Whistleblowing/Complaints Management
  • Accessibility Statement
  • Data Protection
  • Acknowledgements
  • IFG-Form
  • Social Media Directory
  • © Österreichischer Wissenschaftsfonds FWF
© Österreichischer Wissenschaftsfonds FWF