RFR(S): 8186125: "DU iteration must converge quickly" assert in split if with unsafe accesses
Vladimir Kozlov
vladimir.kozlov at oracle.com
Mon Nov 6 18:42:21 UTC 2017
Can you explain (add comment) why it can be only CMove node?:
if (use_c == blk1 || use_c == blk2) {
+ assert(use->is_CMove(), "unexpected node type");
Seems fine otherwise. I submitted testing.
What did you run to catch this problem?
Thanks,
Vladimir
On 10/30/17 10:02 AM, Roland Westrelin wrote:
>
> Anyone to review this fix?
>
> Roland.
>
>> http://cr.openjdk.java.net/~roland/8186125/webrev.00/
>>
>> Split if is missing support for graph shapes with the Opaque4Node that
>> was introduced for unsafe accesses by JDK-8176506.
>>
>> In the test case, the 2 Unsafe accesses share a single Opaque4Node
>> before the if. When split if encounters the Cmp->Bol->Opaque4->If chain,
>> it only tries to clone Cmp->Bol when it should clone Cmp->Bol->Opaque4
>> to make one copy for each If.
>>
>> Roland.
More information about the hotspot-compiler-dev
mailing list