RFR: Fix aarch64 after merge

Roman Kennke rkennke at redhat.com
Wed Apr 25 08:03:38 UTC 2018


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).

>> - write-barrier checking for EVACUATION | PARTIAL | TRAVERSAL instead of
>> just EVACUATION fixes partial+traversal modes
> 
> Please RFR that fix for sh/jdk10 separately?

Sure, will do.

Roman



More information about the shenandoah-dev mailing list