JDK-8078866 : compiler/eliminateAutobox/6934604/TestIntBoxing.java assert(p_f->Opcode() == Op_IfFalse) failed
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux,windows
  • CPU: x86_64
  • Submitted: 2015-04-28
  • Updated: 2015-09-29
  • Resolved: 2015-06-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u60Fixed 9 b70Fixed
Related Reports
Relates :  
Description
Failure in compiler nightly

#  Internal Error (/opt/jprt/T/P1/085811.zmajo/s/hotspot/src/share/vm/opto/loopTransform.cpp:1860), pid=22844, tid=140106223679232
#  assert(p_f->Opcode() == Op_IfFalse) failed: 
#

Stack trace:

Stack: [0x00007f6d05a17000,0x00007f6d05b18000],  sp=0x00007f6d05b12060,  free space=1004k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x10adc21]  VMError::report_and_die()+0x151;;  VMError::report_and_die()+0x151
V  [libjvm.so+0x758d1b]  report_vm_error(char const*, int, char const*, char const*)+0x7b;;  report_vm_error(char const*, int, char const*, char const*)+0x7b
V  [libjvm.so+0xc6172c]  PhaseIdealLoop::do_range_check(IdealLoopTree*, Node_List&)+0x3ac;;  PhaseIdealLoop::do_range_check(IdealLoopTree*, Node_List&)+0x3ac
V  [libjvm.so+0xc6374c]  IdealLoopTree::iteration_split_impl(PhaseIdealLoop*, Node_List&)+0x2ac;;  IdealLoopTree::iteration_split_impl(PhaseIdealLoop*, Node_List&)+0x2ac
V  [libjvm.so+0xc63a89]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x319;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x319
V  [libjvm.so+0xc638a7]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137
V  [libjvm.so+0xc63798]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x28;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x28
V  [libjvm.so+0xc638a7]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137
V  [libjvm.so+0xc638a7]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137
V  [libjvm.so+0xc638a7]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137
V  [libjvm.so+0xc638a7]  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137;;  IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x137
V  [libjvm.so+0xc7cf9e]  PhaseIdealLoop::build_and_optimize(bool, bool)+0x105e;;  PhaseIdealLoop::build_and_optimize(bool, bool)+0x105e
V  [libjvm.so+0x6d5f16]  Compile::Optimize()+0xc16;;  Compile::Optimize()+0xc16
V  [libjvm.so+0x6d752b]  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x12fb;;  Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool)+0x12fb
V  [libjvm.so+0x59fe06]  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x116;;  C2Compiler::compile_method(ciEnv*, ciMethod*, int)+0x116
V  [libjvm.so+0x6e2b95]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x985;;  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x985
V  [libjvm.so+0x6e3778]  CompileBroker::compiler_thread_loop()+0x408;;  CompileBroker::compiler_thread_loop()+0x408
V  [libjvm.so+0x102ba44]  JavaThread::thread_main_inner()+0x1d4;;  JavaThread::thread_main_inner()+0x1d4
V  [libjvm.so+0x102bd66]  JavaThread::run()+0x296;;  JavaThread::run()+0x296
V  [libjvm.so+0xe02fb2]  java_start(Thread*)+0xf2;;  java_start(Thread*)+0xf2
C  [libpthread.so.0+0x7851]

Comments
Regarding lack of test case: it seems this only occurs under well defined conditions that are hard to reproduce with a simple test case: PhiNode::Value() must be called early, SplitIf must do a little work but not too much before pre/main/post loops are built.
09-06-2015

ILW=Assert in compiler - bad behavior, one test, none=HLH=P2
29-04-2015