RFR(S): 8205515: assert(opcode == Op_RangeCheck) failed: no other if variant here

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Jun 28 17:56:39 UTC 2018


Looks like this change cause an other crash for example in 
gc/stress/gcbasher/TestGCBasherWithG1.java (no special flags are needed 
- only ones in the test)

#  Internal Error 
(t:/workspace/open/src/hotspot/share/opto/loopnode.cpp:4244), pid=7124, 
tid=10384
#  assert(is_dominator(early, c)) failed: least != early so we can move 
up the dominator tree

Current CompileTask:
C2:  16468  914       4       Decompiler::<init> (169 bytes)

Stack: [0x000000012b801000,0x000000012b901000],  sp=0x000000012b8fc3a0, 
free space=1004k
Native frames: (J=compiled Java code, A=aot compiled Java code, 
j=interpreted, Vv=VM code, C=native code)
V  [libjvm.dylib+0xc39b71]  VMError::report_and_die(int, char const*, 
char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char 
const*, int, unsigned long)+0x609
V  [libjvm.dylib+0xc3a229]  VMError::report_and_die(Thread*, void*, char 
const*, int, char const*, char const*, __va_list_tag*)+0x47
V  [libjvm.dylib+0x459d6b]  report_vm_error(char const*, int, char 
const*, char const*, ...)+0xcc
V  [libjvm.dylib+0x8eb337] 
PhaseIdealLoop::build_loop_late_post(Node*)+0x6e5
V  [libjvm.dylib+0x8e79f0]  PhaseIdealLoop::build_loop_late(VectorSet&, 
Node_List&, Node_Stack&)+0x2a2
V  [libjvm.dylib+0x8e6865]  PhaseIdealLoop::build_and_optimize(bool, 
bool, bool)+0x5ef
V  [libjvm.dylib+0x3cb84e]  Compile::Optimize()+0xb5c

Vladimir

On 6/28/18 7:40 AM, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/8205515/webrev.00/
> 
> Profile predicates try to apply predication to a CountedLoopNodeEnd
> that's produced as a result of peeling (so it's no longer a true end of
> loop node). I added the same check that regular predication performs.
> 
> Also, I noticed I forgot to check for Reason_profile_predicate in
> dominated_by() methods. I couldn't get a test case that would fail
> because of that (I can get a load node that doesn't depend on the right
> predicate anymore but the load node is scheduled too late for the test
> to fail). I included the fix here. Or do I need another bug for this?
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list