RFR: Fix aarch64 after merge
Roman Kennke
rkennke at redhat.com
Wed Apr 25 08:06:07 UTC 2018
Am 25.04.2018 um 10:03 schrieb Roman Kennke:
> Am 25.04.2018 um 09:58 schrieb Aleksey Shipilev:
>> On 04/25/2018 12:35 AM, Roman Kennke wrote:
>>> This moves code around in aarch64 to account for yesterday merge.
>>>
>>> http://cr.openjdk.java.net/~rkennke/fix-merge-aarch64/webrev.00/
>>
>> barrierSetAssembler_aarch64.cpp: resolve_* deserve a comment that they are deliberately no-op.
>
> Will add. Thanks.
>
>>> There are two backportable changes that fix actual issues:
>>> - c1_LIRGenerator.cpp to fix assert in TestSelectiveBarrierFlags.java
>>> makes C1 barrier generation more consistent with interpreter and other
>>> places
>>
>> This should be RFR-ed separately for backports.
>
> Ok, yes. Will do.
>
>> I think the reason we called into shenandoah_*_impl
>> methods is that we could still have a storeval barrier even if common WB/RBs are disabled. This
>> patch stops emitting storevals with -XX:-ShWB -XX:-ShRB -XX:+ShSVB, when it really should. Is there
>> an assert you are facing somewhere without this patch?
>
> Yes. MacroAssembler::shenandoah_write_barrier() (which is called by the
> C1 WB stub) asserts this.
>
> Also note that the interpreter also does not call _impl: with -ShRB or
> -ShWB we would not get any storeval barriers. It should at least be
> consistent (which is achieved by this patch).
Arg. next time I better check the code before I write BS. The (x86)
interpreter *does* call the _impl() instead. I will fix the aarch64 c1
asserts then.
Roman
More information about the shenandoah-dev
mailing list