RFR: 8182036: Load from initializing arraycopy uses wrong memory state
Yangfei (Felix)
felix.yang at huawei.com
Fri Sep 17 01:12:50 UTC 2021
Thanks for reviewing this.
The issue has been tagged for approval.
Felix.
> -----Original Message-----
> From: Roland Westrelin [mailto:rwestrel at redhat.com]
> Sent: Thursday, September 16, 2021 10:59 PM
> To: Yangfei (Felix) <felix.yang at huawei.com>; Hohensee, Paul
> <hohensee at amazon.com>; jdk8u-dev <jdk8u-dev at openjdk.java.net>
> Subject: RE: RFR: 8182036: Load from initializing arraycopy uses wrong
> memory state
>
>
> > The change in memnode.cpp of the original patch modifies the condition of
> the assertion.
> > For jdk10+, the assertion is located in a loop and the loop condition looks
> like [1].
> > For jdk8u, this loop is not there and the assertion is simply in an if
> statement like [2].
> > Also the condition for the loop and if statement is rather different:
> > For jdk8u, we have this condition for the if statement: mem-
> >in(MemNode::Address)->eqv_uncast(address).
> > In this case, 'mem' is the StoreL node from the ClearArrayNode, as
> explained in [3]. And 'address' corresponds to the StoreI node.
> > Since those two store nodes access different memory, the condition will be
> false and the assertion for jdk8u will not hit in this case.
> > That's why I excluded the change for jdk8u. I should have mentioned this
> in my original email.
>
> Thanks for the details. That sounds reasonable to me.
>
> Roland.
More information about the jdk8u-dev
mailing list