[11u] RFR: Fix non-Shenandoah builds
Aleksey Shipilev
shade at redhat.com
Fri Jul 19 17:35:59 UTC 2019
On 7/19/19 5:36 PM, Roman Kennke wrote:
> I am not sure that the fix is quite right. We do want to exclude this
> stuff from non-Shenandoah builds methinks. Maybe just move the whole
> block up a little, so that the trailing || here:
>
>> (bol->in(1)->Opcode() == Op_CompareAndSwapN ) ||
>
> ... doesn't end up being the last one?
Well, I liked the first fix because it matched what jdk/jdk was doing.
We can do this:
diff -r 59cfe2c1b7ba src/hotspot/share/opto/loopTransform.cpp
--- a/src/hotspot/share/opto/loopTransform.cpp Fri Jul 19 17:23:26 2019 +0200
+++ b/src/hotspot/share/opto/loopTransform.cpp Fri Jul 19 19:34:14 2019 +0200
@@ -2779,4 +2779,12 @@
(bol->in(1)->Opcode() == Op_StoreIConditional ) ||
(bol->in(1)->Opcode() == Op_StoreLConditional ) ||
+#if INCLUDE_SHENANDOAHGC
+ (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeP ) ||
+ (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeN ) ||
+ (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapP ) ||
+ (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapN ) ||
+ (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapP ) ||
+ (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapN ) ||
+#endif
(bol->in(1)->Opcode() == Op_CompareAndExchangeB ) ||
(bol->in(1)->Opcode() == Op_CompareAndExchangeS ) ||
@@ -2796,12 +2804,5 @@
(bol->in(1)->Opcode() == Op_CompareAndSwapL ) ||
(bol->in(1)->Opcode() == Op_CompareAndSwapP ) ||
- (bol->in(1)->Opcode() == Op_CompareAndSwapN ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeP ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahCompareAndExchangeN ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapP ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahWeakCompareAndSwapN ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapP ) ||
- (bol->in(1)->Opcode() == Op_ShenandoahCompareAndSwapN )
- ))
+ (bol->in(1)->Opcode() == Op_CompareAndSwapN )))
return; // Allocation loops RARELY take backedge
// Find the OTHER exit path from the IF
-Aleksey
More information about the shenandoah-dev
mailing list