Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2176963 | 7 | John Rose | P3 | Closed | Fixed | b14 |
JDK-2171978 | 6u4 | John Rose | P3 | Resolved | Fixed | b03 |
The following line was introduced twice in each of two files:
set_mdp_flag_at(mdp, BitData::null_seen_byte_constant());
The files are:
src/cpu/amd64/vm/interp_masm_amd64.cpp
src/cpu/i486/vm/interp_masm_i486.cpp
The lines were apparently introduced by re-application of a patch.
Their contexts are extremely similar, but one context is the correct
location and the other is incorrect. The bug is that the null_seen
bit is set in the MDO on code paths generated by both
profile_null_seen and profile_typecheck in InterpreterMacroAssembler.
Only the former should set that bit. The result is that the
server compiler always performs a careful explicit null check
on the casted oop, instead of (what should be the usual case)
an implicit null check.
Fix is to remove the duplicate lines, one from each file.
set_mdp_flag_at(mdp, BitData::null_seen_byte_constant());
The files are:
src/cpu/amd64/vm/interp_masm_amd64.cpp
src/cpu/i486/vm/interp_masm_i486.cpp
The lines were apparently introduced by re-application of a patch.
Their contexts are extremely similar, but one context is the correct
location and the other is incorrect. The bug is that the null_seen
bit is set in the MDO on code paths generated by both
profile_null_seen and profile_typecheck in InterpreterMacroAssembler.
Only the former should set that bit. The result is that the
server compiler always performs a careful explicit null check
on the casted oop, instead of (what should be the usual case)
an implicit null check.
Fix is to remove the duplicate lines, one from each file.
- backported by
-
JDK-2171978 merge-o in fix to 6516101 bogusly sets the null_seen bit.
- Resolved
-
JDK-2176963 merge-o in fix to 6516101 bogusly sets the null_seen bit.
- Closed
- relates to
-
JDK-6516101 checkcast operations should be profiled to improve code which uses generics
- Resolved
-
JDK-6851908 interpreter null check profiling broken causing extra compilation invalidation
- Resolved