@@ -1054,33 +1054,18 @@ CompLevel CompilationPolicy::common(const methodHandle& method, CompLevel cur_le
10541054 if (common<Predicate>(method, CompLevel_full_profile, disable_feedback) == CompLevel_full_optimization) {
10551055 next_level = CompLevel_full_optimization;
10561056 } else if (!CompilationModeFlag::disable_intermediate () && Predicate::apply (i, b, cur_level, method)) {
1057- #if INCLUDE_JVMCI
1058- if (EnableJVMCI && UseJVMCICompiler) {
1059- // Since JVMCI takes a while to warm up, its queue inevitably backs up during
1060- // early VM execution. As of 2014-06-13, JVMCI's inliner assumes that the root
1061- // compilation method and all potential inlinees have mature profiles (which
1062- // includes type profiling). If it sees immature profiles, JVMCI's inliner
1063- // can perform pathologically bad (e.g., causing OutOfMemoryErrors due to
1064- // exploring/inlining too many graphs). Since a rewrite of the inliner is
1065- // in progress, we simply disable the dialing back heuristic for now and will
1066- // revisit this decision once the new inliner is completed.
1057+ // C1-generated fully profiled code is about 30% slower than the limited profile
1058+ // code that has only invocation and backedge counters. The observation is that
1059+ // if C2 queue is large enough we can spend too much time in the fully profiled code
1060+ // while waiting for C2 to pick the method from the queue. To alleviate this problem
1061+ // we introduce a feedback on the C2 queue size. If the C2 queue is sufficiently long
1062+ // we choose to compile a limited profiled version and then recompile with full profiling
1063+ // when the load on C2 goes down.
1064+ if (!disable_feedback && CompileBroker::queue_size (CompLevel_full_optimization) >
1065+ Tier3DelayOn * compiler_count (CompLevel_full_optimization)) {
1066+ next_level = CompLevel_limited_profile;
1067+ } else {
10671068 next_level = CompLevel_full_profile;
1068- } else
1069- #endif
1070- {
1071- // C1-generated fully profiled code is about 30% slower than the limited profile
1072- // code that has only invocation and backedge counters. The observation is that
1073- // if C2 queue is large enough we can spend too much time in the fully profiled code
1074- // while waiting for C2 to pick the method from the queue. To alleviate this problem
1075- // we introduce a feedback on the C2 queue size. If the C2 queue is sufficiently long
1076- // we choose to compile a limited profiled version and then recompile with full profiling
1077- // when the load on C2 goes down.
1078- if (!disable_feedback && CompileBroker::queue_size (CompLevel_full_optimization) >
1079- Tier3DelayOn * compiler_count (CompLevel_full_optimization)) {
1080- next_level = CompLevel_limited_profile;
1081- } else {
1082- next_level = CompLevel_full_profile;
1083- }
10841069 }
10851070 }
10861071 break ;
0 commit comments