a block based bytecode format
play

A Block-Based Bytecode Format to Simplify and Improve Just-in-Time - PowerPoint PPT Presentation

A Block-Based Bytecode Format to Simplify and Improve Just-in-Time Compilation Christian Wimmer cwimmer@uci.edu www.christianwimmer.at June 2009 Department of Computer Science University of California, Irvine Method Granularity Software


  1. A Block-Based Bytecode Format to Simplify and Improve Just-in-Time Compilation Christian Wimmer cwimmer@uci.edu www.christianwimmer.at June 2009 Department of Computer Science University of California, Irvine

  2. Method Granularity Software Engineering Compiler Optimization Unstructured Bytecodes Method Granularity JIT Compiler Design derived from Static Compilers Method Structure used in Compiler because “it’s there” 2

  3. Block Granularity Software Engineering Compiler Optimization Block-Based Bytecodes with Structure Information Novel JIT Compilation Strategies using Profiling Data Compilation Units based on Execution Frequency 3

  4. Compiler Research Profiling-Based Method Inlining Partial Method Inlining Region-Based Compilation On-Stack Replacement Deoptimization Trace Compilation 4

  5. Main Idea and Challenges Definition of a Block-Based Bytecode Format Execution in Virtual Machine Source Languages Efficient Interpretation For Static and Dynamic Languages Simple Compilation Functional Languages Profile Information Dynamic Method Calls Trace Compilation Closures, Tail Calls, … Design Decisions Safety and Security High-Level Structure, e.g., Loops Easy Verification “Calling Convention” of Blocks Inherently Safe Code Formats Stack Based vs. Register Based Static Single Assignment Form? 5

  6. SPECjvm2008 – mpegaudio Method Execution Frequency 100 Methods 150 200 Block Execution Frequency 100 Methods 150 200 50 Blocks Execution Frequency Relative to Most Executed 100% 0.1% 100 5% 0% 1 Iteration / 1 Operation of mpegaudio benchmark from SPECjvm2008 Single-block methods omitted Most executed method: javazoom.jl.decoder.huffcodetab.huffman_decoder 20,406,507 loop iterations / 5,078,337 calls 6 150

  7. Summary Software Engineering Compiler Optimization Method Structuring Block Structuring Readability Execution Frequency Extendibility Feedback-Directed Optimization Reusability Profiling … … Methods hide the real focus where compiler optimizations should be applied 7

Recommend


More recommend