changeset 2534:6fcb75989c4a

Zero/Shark: PR690: Shark fails to JIT using hs20, PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. 2011-08-24 Xerxes Ranby <xerxes@zafena.se> Zero/Shark - PR690: Shark fails to JIT using hs20. - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20. * patches/pr690-shark-jit-hs20.patch: New patch backported from OpenJDK 7 bug 7032458. * patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from OpenJDK 7 bug 7032458 and 7030207. * Makefile.am: Added new patches. * NEWS: Updated.
author Xerxes Ranby <xerxes@zafena.se>
date Wed, 24 Aug 2011 11:58:13 +0200
parents b4b912ba7688
children d0a7b63adce9
files ChangeLog Makefile.am NEWS patches/pr690-shark-jit-hs20.patch patches/pr696-zero-fast_aldc-hs20.patch
diffstat 5 files changed, 123 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Jul 21 15:06:15 2011 +0100
+++ b/ChangeLog	Wed Aug 24 11:58:13 2011 +0200
@@ -1,3 +1,15 @@
+2011-08-24  Xerxes RĂ„nby  <xerxes@zafena.se>
+
+	Zero/Shark
+	- PR690: Shark fails to JIT using hs20.
+	- PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20.
+	* patches/pr690-shark-jit-hs20.patch: New patch backported from
+	  OpenJDK 7 bug 7032458.
+	* patches/pr696-zero-fast_aldc-hs20.patch: New patch backported from
+	  OpenJDK 7 bug 7032458 and 7030207.
+	* Makefile.am: Added new patches.
+	* NEWS: Updated.
+
 2011-07-21  Andrew John Hughes  <ahughes@redhat.com>
 
 	* NEWS: Prepare for 1.10.4.
--- a/Makefile.am	Thu Jul 21 15:06:15 2011 +0100
+++ b/Makefile.am	Wed Aug 24 11:58:13 2011 +0200
@@ -353,6 +353,8 @@
 if WITH_ALT_HSBUILD
 ICEDTEA_PATCHES += \
 	patches/pr639-broken_shark_build.patch \
+	patches/pr690-shark-jit-hs20.patch \
+	patches/pr696-zero-fast_aldc-hs20.patch \
 	patches/hotspot/$(HSBUILD)/powerpc-stacksize.patch
 else
 ICEDTEA_PATCHES += \
--- a/NEWS	Thu Jul 21 15:06:15 2011 +0100
+++ b/NEWS	Wed Aug 24 11:58:13 2011 +0200
@@ -11,6 +11,10 @@
 
 New in release 1.10.4 (2011-XX-XX):
 
+* Zero/Shark
+  - PR690: Shark fails to JIT using hs20.
+  - PR696: Zero fails to handle fast_aldc and fast_aldc_w in hs20.
+
 New in release 1.10.3 (2011-07-21):
 
 * Bug fixes
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr690-shark-jit-hs20.patch	Wed Aug 24 11:58:13 2011 +0200
@@ -0,0 +1,61 @@
+Index: openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp
+===================================================================
+--- openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.hpp	2011-04-15 14:48:22.175181000 +0200
++++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.hpp	2011-04-15 16:19:28.915181000 +0200
+@@ -113,7 +113,7 @@
+   // Global access
+  public:
+   static SharkCompiler* compiler() {
+-    AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple);
++    AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_full_optimization);
+     assert(compiler->is_shark() && compiler->is_initialized(), "should be");
+     return (SharkCompiler *) compiler;
+   }
+Index: openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp
+===================================================================
+--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp	2011-04-15 14:54:00.447181000 +0200
++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp	2011-04-15 15:02:25.851181000 +0200
+@@ -740,9 +740,9 @@
+   CompLevel_simple            = 1,         // C1
+   CompLevel_limited_profile   = 2,         // C1, invocation & backedge counters
+   CompLevel_full_profile      = 3,         // C1, invocation & backedge counters + mdo
+-  CompLevel_full_optimization = 4,         // C2
++  CompLevel_full_optimization = 4,         // C2 or Shark
+ 
+-#if defined(COMPILER2)
++#if defined(COMPILER2) || defined(SHARK)
+   CompLevel_highest_tier      = CompLevel_full_optimization,  // pure C2 and tiered
+ #elif defined(COMPILER1)
+   CompLevel_highest_tier      = CompLevel_simple,             // pure C1
+@@ -754,7 +754,7 @@
+   CompLevel_initial_compile   = CompLevel_full_profile        // tiered
+ #elif defined(COMPILER1)
+   CompLevel_initial_compile   = CompLevel_simple              // pure C1
+-#elif defined(COMPILER2)
++#elif defined(COMPILER2) || defined(SHARK)
+   CompLevel_initial_compile   = CompLevel_full_optimization   // pure C2
+ #else
+   CompLevel_initial_compile   = CompLevel_none
+Index: openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp
+===================================================================
+--- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp	2011-04-15 16:05:50.051181001 +0200
++++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp	2011-04-15 16:08:46.127181000 +0200
+@@ -768,7 +768,9 @@
+ // Initialize the compilation queue
+ void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) {
+   EXCEPTION_MARK;
++#if !defined(ZERO) && !defined(SHARK)
+   assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?");
++#endif // !ZERO && !SHARK
+   if (c2_compiler_count > 0) {
+     _c2_method_queue  = new CompileQueue("C2MethodQueue",  MethodCompileQueue_lock);
+   }
+@@ -1029,7 +1031,7 @@
+ 
+   assert(!HAS_PENDING_EXCEPTION, "No exception should be present");
+   // some prerequisites that are compiler specific
+-  if (compiler(comp_level)->is_c2()) {
++  if (compiler(comp_level)->is_c2() || compiler(comp_level)->is_shark()) {
+     method->constants()->resolve_string_constants(CHECK_0);
+     // Resolve all classes seen in the signature of the method
+     // we are compiling.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pr696-zero-fast_aldc-hs20.patch	Wed Aug 24 11:58:13 2011 +0200
@@ -0,0 +1,44 @@
+Index: openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
+===================================================================
+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Sun Apr 03 12:00:54 2011 +0200
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Mon Apr 04 03:02:00 2011 -0700
+@@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterStat
+ /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
+  
+ /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
+-/* 0xE4 */ &&opc_default, &&opc_return_register_finalizer, &&opc_default, &&opc_default,
++/* 0xE4 */ &&opc_default, &&opc_default, &&opc_default, &&opc_return_register_finalizer,
+ /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
+ /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
+  
+# HG changeset patch
+# User twisti
+# Date 1300957910 25200
+# Node ID 151da0c145a8e4de263740273ec10c0eb46b30d0
+# Parent 9dc311b8473e0259a5de3f9358ca94de3990d692
+7030207: Zero tweak to remove accidentally incorporated code
+Summary: IcedTea contains a now-unmaintained ARM-specific interpreter and part of that interpreter was accidentally incorporated in one of the webrevs when Zero was initially imported.
+Reviewed-by: twisti
+Contributed-by: Gary Benson <gbenson@redhat.com>
+
+--- openjdk.orig/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	Mon Mar 21 11:28:14 2011 -0700
++++ openjdk/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp	Thu Mar 24 02:11:50 2011 -0700
+@@ -2383,17 +2383,6 @@ run:
+       }
+ 
+       DEFAULT:
+-#ifdef ZERO
+-          // Some zero configurations use the C++ interpreter as a
+-          // fallback interpreter and have support for platform
+-          // specific fast bytecodes which aren't supported here, so
+-          // redispatch to the equivalent non-fast bytecode when they
+-          // are encountered.
+-          if (Bytecodes::is_defined((Bytecodes::Code)opcode)) {
+-              opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode);
+-              goto opcode_switch;
+-          }
+-#endif
+           fatal(err_msg("Unimplemented opcode %d = %s", opcode,
+                         Bytecodes::name((Bytecodes::Code)opcode)));
+           goto finish;
+