Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_LIRGenerator.cpp @ 3964:dc45ae774613
7096639: Tiered: Incorrect counter overflow handling for inlined methods
Summary: Enable invocation events for inlinees
Reviewed-by: kvn
author | iveresov |
---|---|
date | Thu, 29 Sep 2011 23:09:54 -0700 |
parents | c8f2186acf6d |
children | 940513efe83a |
comparison
equal
deleted
inserted
replaced
3963:098acdf97f09 | 3964:dc45ae774613 |
---|---|
2968 void LIRGenerator::do_ProfileInvoke(ProfileInvoke* x) { | 2968 void LIRGenerator::do_ProfileInvoke(ProfileInvoke* x) { |
2969 // We can safely ignore accessors here, since c2 will inline them anyway, | 2969 // We can safely ignore accessors here, since c2 will inline them anyway, |
2970 // accessors are also always mature. | 2970 // accessors are also always mature. |
2971 if (!x->inlinee()->is_accessor()) { | 2971 if (!x->inlinee()->is_accessor()) { |
2972 CodeEmitInfo* info = state_for(x, x->state(), true); | 2972 CodeEmitInfo* info = state_for(x, x->state(), true); |
2973 // Increment invocation counter, don't notify the runtime, because we don't inline loops, | 2973 // Notify the runtime very infrequently only to take care of counter overflows |
2974 increment_event_counter_impl(info, x->inlinee(), 0, InvocationEntryBci, false, false); | 2974 increment_event_counter_impl(info, x->inlinee(), (1 << Tier23InlineeNotifyFreqLog) - 1, InvocationEntryBci, false, true); |
2975 } | 2975 } |
2976 } | 2976 } |
2977 | 2977 |
2978 void LIRGenerator::increment_event_counter(CodeEmitInfo* info, int bci, bool backedge) { | 2978 void LIRGenerator::increment_event_counter(CodeEmitInfo* info, int bci, bool backedge) { |
2979 int freq_log; | 2979 int freq_log; |