RFR(S): 8043125: compiler/types/correctness/CorrectnessTest.java: assert(layout->tag() == DataLayout::speculative_trap_data_tag) failed: wrong type

Roland Westrelin roland.westrelin at oracle.com
Wed Jul 30 20:43:58 UTC 2014


Speculative traps recorded in a MethodData can be removed at a
safepoint. During a compilation, as an MethoData is copied and
translated by a compiler thread to build a ciMethodData, a safepoint can
occur as speculative traps are being copied, and speculative traps may
be removed. I fixed this by adding a flag to the MDO that is set when
speculative traps are removed. The code that copies the speculative
traps to the ciMethodData, checks the flag as it iterates over the traps
and if it detects a change, it starts the copy over. I took this
opportunity to clean the code a bit: args_data_limit() points right
after the last ArgInfoData entry while extra_data_limit() points after
the parameters profiling area.

http://cr.openjdk.java.net/~roland/8043125/webrev.00/

Roland.


More information about the hotspot-compiler-dev mailing list