RFR(M): 8229495: SIGILL in C2 generated OSR compilation
Roland Westrelin
rwestrel at redhat.com
Thu Jul 9 11:43:55 UTC 2020
Hi Christian,
new webrev:
http://cr.openjdk.java.net/~roland/8229495/webrev.01/
> I submitted some testing.
Thanks.
> 1824 // Add back the predicate for the value at the beginning of
> the first entry
> 1825 prev_proj = clone_skeleton_predicate(iff, init, max_value,
> entry, proj, ctrl, outer_loop, prev_proj);
>
> This comment seems to be outdated as you now clone both skeleton
> predicates with the same function call in different loop iterations.
I tweaked the comment.
>
> - In loopopts.cpp: While fixing the spacing you could also add curly
> braces to the one-liner if statements like
>
> 955 if (n_op == Op_MergeMem) return n;
Ok.
> While at it, you might want to consider to update other uses of the
> pattern Opcode() == Op_Opaque1 by is_Opaque1() as well like in
> loopTransform.cpp:
>
> 1158 assert(iff->in(1)->in(1)->Opcode() == Op_Opaque1, "unexpected
> predicate shape");
Except in this case it really is an Opaque1 instead of a subclass so
using is_Opaque1() would weaken the assert.
> I observed a Java Fuzzer crash ("fatal error: DEBUG MESSAGE: duplicated
> predicate failed which is impossible") this weekend which looked very
> similar to this bug and indeed it could be fixed with your patch. You
> could add it as additional testcase. Here is the simplified code and the
> command line I used to reproduce it.
Thanks for test case. I included it in the new webrev.
Roland.
More information about the hotspot-compiler-dev
mailing list