Uploaded image for project: 'Harmony'
  1. Harmony
  2. HARMONY-1363

[drlvm] Java 1.5, 64 bit support, JVMTI improvements

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • Contributions, DRLVM
    • None
    • Linux/i686, Windows/i686, Linux/x86_64, Linux/ia64

    Description

      This patch includes:

      • Java 1.5 support
      • Intel 64 (aka EM64T aka x86_64) support in VM and JIT
      • IA-64 (aka IPF) code generator in JIT
      • Improvements in JIT code
      • Improvements in JVMTI support

      New JIT features and improvements
      ---------------------------------

      • Software-based edge profiling framework
      • High-Level Optimizer enabled (client and server, static and recompilation
        modes, edge profile support)
      • Compilation Pipeline Management Framework (PMF) - consistent configuration
        control based on system properties
      • Unified Control Flow Graph (CFG) and basic algorithms for the high-level
        optimizer and the IA-32/Intel 64 Code Generator
      • Unified logging system for both Jitrino.JET and Jitrino.OPT
      • More comments added to interface header files
      • New high-level optimizations developed:
      • Escape Analysis based synchronization elimination (prototype for Windows/IA-32 only)
      • Optimization for System.arraycopy calls
      • Moving ldInterface out of the loop

      IA-32/Intel 64 Code Generator
      -----------------------------

      • Graph Coloring register allocator implemented
      • Optimization for loading String constants

      Bugs in the JIT code fixed
      --------------------------

      • uncaught exception in case HLO turn on
      • jitrino.dll failure during gc execution
      • DRLVM crashes on Linux IA-32 with "-Xjit opt::skip=off" switch
      • OPT fails with statprof before inliner
      • bytecode mapping does not estimate CFG extension from inliner
      • Memory leaks in Jitrino MemoryManager
      • Memory leak in DrlEMFactory::createAndInitEMInstance() for emInstance
      • Memory leak in RuntimeInterface::getGCRootSet() for gcSite
      • mpegaudio hangs in -Xem opt mode
      • Memory leak in LazyExceptionOpt::doLazyExceptionOpt() for optCandidates
      • Memory leak in LazyExceptionOpt::addOptCandidates() for thrinst
      • VM can not start threads which throw a lot of exceptions
      • Jitrino.OPT does not call finalize() method of some exception class
      • incorrect usage of Flow Graph
      • incorrect usage of lazyexc opt pass
      • Arithmetic helpers should be changed to directly generated code
      • Jitrino.OPT crashes when null value is assigned to some field of non-existent type

      Java 1.5 support
      ----------------

      • Added complete parsing of the v49 class-files format;
      • Implemented all 1.5 runtime features of kernel classes;
      • Implemented Java assertions;
      • Simplified and optimized reflection mechanism;
      • Added ldc class_literal support to Jitrino.OPT;
      • Assorted fixes in verifier, class support, kernels, etc.
      • Added the unit test suite for all kernel classes.

      JVMTI support
      -------------

      • JIT is the default execution mode when JVMTI is enabled
      • Support of METHOD_ENTRY/EXIT events implemented in Jitrino.JET
      • Decoding capabilities has been added to IA32/EM64T encoder
      • Implemented ExceptionCatch, MethodEntry/MethodExit and field watches for JIT
      • Implemented ExceptionCatch support in interpreter
      • Fixed GetObjectMonitorUsge function
      • Fixed DisposeEnvironment function
      • Fixed checks for validity of class objects
      • Fixed bug in RelinquishCapabilities function (Fixed bug in code, that resets global capabilities)
      • Fixed check for JVMTI_ERROR_INVALID_THREAD_GROUP error
      • Fixed JVMTI Extensions implementation
      • Fixed JVMTI breakpoints on JIT not to handle anything when JVMTI is not enabled
      • Fixed method entry event: frame.ip should be initialized before the callback on interpreter

      Known issues
      ------------

      • Intel 64 needs Intel 64-compatible class library to run
      • IA-64 support is not complete

      Attachments

        1. BBC.patch
          8.52 MB
          Salikh Zakirov

        Issue Links

          Activity

            People

              geir Geir Magnusson Jr
              salikh Salikh Zakirov
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: