RFR [8,10]: Fix Minimal and Zero builds

Aleksey Shipilev shade at redhat.com
Mon Aug 13 10:42:09 UTC 2018


This fixes the sh/jdk8 and sh/jdk10 builds in Minimal and Zero variants. It does not affect sh/jdk
and sh/jdk11, because this code seems to be properly disabled in those configs.

diff -r 1be3c6447b5a src/hotspot/share/compiler/compileBroker.cpp
--- a/src/hotspot/share/compiler/compileBroker.cpp      Mon Aug 06 16:49:07 2018 +0200
+++ b/src/hotspot/share/compiler/compileBroker.cpp      Mon Aug 13 12:40:26 2018 +0200
@@ -56,10 +56,11 @@
 #include "trace/tracing.hpp"
 #include "utilities/debug.hpp"
 #include "utilities/dtrace.hpp"
 #include "utilities/events.hpp"
 #include "utilities/formatBuffer.hpp"
+#include "utilities/macros.hpp"
 #ifdef COMPILER1
 #include "c1/c1_Compiler.hpp"
 #endif
 #if INCLUDE_JVMCI
 #include "jvmci/jvmciCompiler.hpp"
@@ -1925,14 +1926,16 @@
       failure_reason = ci_env.failure_reason();
       retry_message = ci_env.retry_message();
       ci_env.report_failure(failure_reason);
     }

+#if INCLUDE_ALL_GCS
     guarantee(!UseShenandoahGC || !ShenandoahCompileCheck || !target_compilable || (compilable !=
ciEnv::MethodCompilable_not_at_tier),
               "Not compilable on level %d due to: %s", task_level, failure_reason);
     guarantee(!UseShenandoahGC || !ShenandoahCompileCheck || !target_compilable ||(compilable !=
ciEnv::MethodCompilable_never || !target_compilable),
               "Never compilable due to: %s", failure_reason);
+#endif

     post_compile(thread, task, event, !ci_env.failing(), &ci_env);
   }
   // Remove the JNI handle block after the ciEnv destructor has run in
   // the previous block.
diff -r 1be3c6447b5a src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp   Mon Aug 06 16:49:07 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp   Mon Aug 13 12:40:26 2018 +0200
@@ -178,15 +178,17 @@
     FLAG_SET_DEFAULT(TLABAllocationWeight, 90);
   }

   // Shenandoah needs more space in generated code to put barriers in.
   // TODO: NMethodSizeLimit should not be develop.
+#ifdef COMPILER1
 #ifdef ASSERT
   if (FLAG_IS_DEFAULT(NMethodSizeLimit)) {
     FLAG_SET_DEFAULT(NMethodSizeLimit, NMethodSizeLimit * 3);
   }
 #endif
+#endif

   // Shenandoah needs more C2 nodes to compile some methods with lots of barriers.
   // NodeLimitFudgeFactor needs to stay the same relative to MaxNodeLimit.
 #ifdef COMPILER2
   if (FLAG_IS_DEFAULT(MaxNodeLimit)) {

Testing: Zero, Minimal, Server builds

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list