RFR: 8260473: [vector] ZGC: VectorReshape test produces incorrect results with ZGC enabled [v4]
Erik Österlund
eosterlund at openjdk.java.net
Thu Jan 28 13:12:42 UTC 2021
On Thu, 28 Jan 2021 13:01:36 GMT, 王超 <github.com+25214855+casparcwang at openjdk.org> wrote:
>>> @iwanowww GraphKit::access_load_at is for parse time only. C2OptAccess must be used here.
>>
>> I see. That's unfortunate.
>>
>> Actually, `PhaseVector::optimize_vector_boxes()` sets `C->inlining_incrementally() == true` and it enables the code to use `GraphKit` and, moreover, perform late inlining of vector reboxing operations. But I haven't thought through all the implications yet.
>
>> > @iwanowww GraphKit::access_load_at is for parse time only. C2OptAccess must be used here.
>>
>> I see. That's unfortunate.
>>
>> Actually, `PhaseVector::optimize_vector_boxes()` sets `C->inlining_incrementally() == true` and it enables the code to use `GraphKit` and, moreover, perform late inlining of vector reboxing operations. But I haven't thought through all the implications yet.
>
> `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?
Worth mentioning is that we have optimization-time loads and stores in the arraycopy/clone code. When that was added, it was the only place where we had such accesses, so a little load/store wrapper utility was written in the arraycopy code. But perhaps now that there is more than one place, that utility belongs in a more central place, so the boilerplate can be reduced. I'm okay with doing that in a follow-up RFE though, as it is a refactoring only, and getting the actual bug fix in soon is is of value.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2253
More information about the hotspot-compiler-dev
mailing list