[lworld] RFR: 8264414: [lworld] [AArch64] TestBufferTearing.java fails with C1 [v2]

Nick Gasson ngasson at openjdk.java.net
Mon Apr 12 09:59:02 UTC 2021

On Fri, 9 Apr 2021 09:49:45 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

> Regarding the combination of `InlineFieldMaxFlatSize` and `FlatArrayElementMaxSize`, couldn't you achieve the same result by using an Object or Interface array/field to prevent flattening?

Yes that's much simpler, thanks.

> The fix looks good to me but I think we also need membars in `GraphBuilder::access_field` (there are two places where we create a buffer via `new NewInlineTypeInstance`). Would be great if you could add a regression test for that as well.

Yes there's also the case for the "delayed" load-indexed as in `array[n].field`. I saw that before but for some reason thought it didn't need the membar. I've added a test for that too so all three cases fail without the corresponding membar.

While I was testing that I found it would fail occasionally before while `writeRefs()` was running in the interpreter before C1 compiled it. So I think there's also a missing membar at the end of `InterpreterMacroAssembler::read_inlined_field()` which I've added (not necessary for x86).


PR: https://git.openjdk.java.net/valhalla/pull/376

More information about the valhalla-dev mailing list