RFR: 8260473: [vector] ZGC: VectorReshape test produces incorrect results with ZGC enabled [v4]

Vladimir Ivanov vlivanov at openjdk.java.net
Thu Jan 28 21:39:43 UTC 2021


On Thu, 28 Jan 2021 17:56:39 GMT, Stuart Monteith <smonteith at openjdk.org> wrote:

>> 王超 has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Change the directory & fix the include order
>
> Looks good, but needs some editing.

> ArrayCopyNode::load performs the same work as it does here in PhaseVector::optimize_vector_boxes .
> Is there a need to provide a similar function in PhaseVector or GraphKit?

My point is since PhaseVector effectively enters the parsing phase (by signaling about the possibility of post-parse inlining), technically I don't see why `GraphKit::access_load_at` won't work. But I need to spend more time looking into the details.

So far, I took a look at the review thread of 8212243 (which introduced `ArrayCopyNode::load`) and found the following discussion between Roland and Erik:
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2018-October/030971.html
> ... Also it beats  me that this is strictly speaking a load barrier for loads performed in 
> arraycopy. Would it be possible to use something like access_load_at  instead? ...
...
GraphKit is a parse time only thing. So the existing gc interface
doesn't offer any way to add barriers once parsing is over. This code
runs after parsing in optimization phases.
...

Considering `PhaseVector::optimize_vector_boxes()` already has access to a usable `GraphKit` instance, it is possible that `GraphKit::access_load_at` will "just work".

-------------

PR: https://git.openjdk.java.net/jdk/pull/2253


More information about the hotspot-compiler-dev mailing list