mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
8059606: Enable per-method usage of CompileThresholdScaling (per-method compilation thresholds)
Changed interpreter and compilation policies to allow using CompileThresholdScaling on a per-method level Reviewed-by: jrose, kvn
This commit is contained in:
parent
3d814126c2
commit
e559c17954
32 changed files with 293 additions and 157 deletions
|
@ -32,6 +32,7 @@
|
|||
#include "ci/ciArrayKlass.hpp"
|
||||
#include "ci/ciInstance.hpp"
|
||||
#include "ci/ciObjArray.hpp"
|
||||
#include "runtime/arguments.hpp"
|
||||
#include "runtime/sharedRuntime.hpp"
|
||||
#include "runtime/stubRoutines.hpp"
|
||||
#include "runtime/vm_version.hpp"
|
||||
|
@ -3351,7 +3352,12 @@ void LIRGenerator::do_ProfileInvoke(ProfileInvoke* x) {
|
|||
if (!x->inlinee()->is_accessor()) {
|
||||
CodeEmitInfo* info = state_for(x, x->state(), true);
|
||||
// Notify the runtime very infrequently only to take care of counter overflows
|
||||
increment_event_counter_impl(info, x->inlinee(), (1 << Tier23InlineeNotifyFreqLog) - 1, InvocationEntryBci, false, true);
|
||||
int freq_log = Tier23InlineeNotifyFreqLog;
|
||||
double scale;
|
||||
if (_method->has_option_value("CompileThresholdScaling", scale)) {
|
||||
freq_log = Arguments::scaled_freq_log(freq_log, scale);
|
||||
}
|
||||
increment_event_counter_impl(info, x->inlinee(), right_n_bits(freq_log), InvocationEntryBci, false, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3366,7 +3372,11 @@ void LIRGenerator::increment_event_counter(CodeEmitInfo* info, int bci, bool bac
|
|||
ShouldNotReachHere();
|
||||
}
|
||||
// Increment the appropriate invocation/backedge counter and notify the runtime.
|
||||
increment_event_counter_impl(info, info->scope()->method(), (1 << freq_log) - 1, bci, backedge, true);
|
||||
double scale;
|
||||
if (_method->has_option_value("CompileThresholdScaling", scale)) {
|
||||
freq_log = Arguments::scaled_freq_log(freq_log, scale);
|
||||
}
|
||||
increment_event_counter_impl(info, info->scope()->method(), right_n_bits(freq_log), bci, backedge, true);
|
||||
}
|
||||
|
||||
void LIRGenerator::decrement_age(CodeEmitInfo* info) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue