aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm/runtime/compilationPolicy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/vm/runtime/compilationPolicy.cpp')
-rw-r--r--src/share/vm/runtime/compilationPolicy.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/share/vm/runtime/compilationPolicy.cpp b/src/share/vm/runtime/compilationPolicy.cpp
index 3d1ccc0a3..132a61018 100644
--- a/src/share/vm/runtime/compilationPolicy.cpp
+++ b/src/share/vm/runtime/compilationPolicy.cpp
@@ -129,16 +129,31 @@ void NonTieredCompPolicy::initialize() {
}
}
+// Note: this policy is used ONLY if TieredCompilation is off.
+// compiler_count() behaves the following way:
+// - with TIERED build (with both COMPILER1 and COMPILER2 defined) it should return
+// zero for the c1 compilation levels, hence the particular ordering of the
+// statements.
+// - the same should happen when COMPILER2 is defined and COMPILER1 is not
+// (server build without TIERED defined).
+// - if only COMPILER1 is defined (client build), zero should be returned for
+// the c2 level.
+// - if neither is defined - always return zero.
int NonTieredCompPolicy::compiler_count(CompLevel comp_level) {
-#ifdef COMPILER1
- if (is_c1_compile(comp_level)) {
+ assert(!TieredCompilation, "This policy should not be used with TieredCompilation");
+#ifdef COMPILER2
+ if (is_c2_compile(comp_level)) {
return _compiler_count;
+ } else {
+ return 0;
}
#endif
-#ifdef COMPILER2
- if (is_c2_compile(comp_level)) {
+#ifdef COMPILER1
+ if (is_c1_compile(comp_level)) {
return _compiler_count;
+ } else {
+ return 0;
}
#endif