RFR(M/L): 7115356: assert(!m->was_never_executed()) failed
nils.eliasson at oracle.com
Wed Sep 17 14:05:52 UTC 2014
Please review this change. It started out as a bug fix and grew with
some refactoring of invocationCounter.cpp/hpp and its uses.
The original problem was that an assert in compilationPolicy failed
because a value that was just set could not be observed. Some code paths
read the composite counters a part at a time and may observe and write
inconsistent values when several threads are using them. While removing
a few unnecessary read and writes of the 'state' field, I noticed the
state and Action was actually never used. I removed it all and came up
with much simpler code.
1) Rewritten invocationCounter methods to read entire counter,
manipulate and then write entire counter.
2) Removed the state, and action - it was never used anywhere.
3) Moved invocation counter logic from simpleThresholdPolicy into
This code might affect the logCompilation and replay tools since it
changes the output. I will test and fix that before submitting. I will
also do some performance testing to make sure I haven't messed up the
counters in any way.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the hotspot-compiler-dev