Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
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
Attachments
Issue Links
- is depended upon by
-
HARMONY-1427 [drlvm] ExceptionDescribe incorrectly disables suspend when calling exn_print_stack_trace
- Resolved
-
HARMONY-1258 [drlvm][kernel] Incorrect detection of privileged and reflection frames in Java_org_apache_harmony_vm_VMStack_getClasses
- Closed
-
HARMONY-1421 [DRLVM] Thread Manager jvmti related issues fixes
- Closed
-
HARMONY-1423 [DRLVM] Fix bug: missed exception from compilation stage.
- Closed
-
HARMONY-1426 [drlvm] Thread manager uses wrong allocator for monitors returned by jthread_get_owned_monitors
- Closed
-
HARMONY-1430 [DRLVM] Two bugs fixed in HLO part of Jitrino
- Closed
-
HARMONY-1431 [DRLVM] Some bug fixed in kernel classes, kernel unit tests and VM tests build an run system
- Closed
-
HARMONY-1432 [DRLVM] [reflection] assertion failed "Unexpected type descriptor"
- Closed
-
HARMONY-1434 [drlvm] Misc fixes for kernel classes
- Closed
-
HARMONY-1437 [DRLVM] Interpreter does not handle ThreadDeath exceptions raised in the safe_points
- Closed
-
HARMONY-1450 [drlvm][classloader] Package-private final method is considered to be overridden in another package(IncompatibleClassChangeError)
- Closed
-
HARMONY-1452 [DRLVM] jvmtiStopThread method does not check error conditions
- Closed
-
HARMONY-1459 [drlvm] DRLVM has problems compiling with gcc 3.4.x and greater
- Closed
-
HARMONY-1416 [DRLVM] Fixed bug in Jitrino.JET codegeneration
- Closed
-
HARMONY-1417 [DRLVM] Fixed bugs in lazy exception optimization pass
- Closed
-
HARMONY-1442 [drlvm] VM asserts with NULL pointer in DefineClass()
- Closed
-
HARMONY-1422 [drlvm] Implementation function for SingleStep event and small bug fix
- Resolved
-
HARMONY-1420 [DRLVM] Initial jvmtiPopFrame implementatoin and some jvmti bug fixes.
- Closed