[9] RFR (XS): 8131675: EA fails with assert(false) failed: not unsafe or G1 barrier raw StoreP (original) (raw)
Vladimir Ivanov vladimir.x.ivanov at oracle.com
Tue Jul 21 18:20:10 UTC 2015
- Previous message: RFR: 8131062: aarch64: add support for GHASH acceleration
- Next message: [9] RFR (XS): 8131675: EA fails with assert(false) failed: not unsafe or G1 barrier raw StoreP
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
http://cr.openjdk.java.net/~vlivanov/8131675/webrev.00 https://bugs.openjdk.java.net/browse/JDK-8131675
Newly introduced UnsafeGetConstantField test revealed an uncovered case in EA for unsafe accesses.
The following code:
U.putAddress(nativeAddr, 0x12345678L);
where static final long nativeAddr = U.allocateMemory(16); static final Unsafe U = Unsafe.getUnsafe();
is parsed into the following IR:
StoreP (ctrl) (mem) ConP ConP
But EA doesn't expect to see a constant address and falls through the unsafe access detection logic hitting the assert right away.
The fix is to treat all stores to raw pointers (except G1 barriers) as unsafe accesses and mark stored values as escaped.
Testing: failed test, jprt
Best regards, Vladimir Ivanov
[1] test/compiler/unsafe/UnsafeGetConstantField.java
- Previous message: RFR: 8131062: aarch64: add support for GHASH acceleration
- Next message: [9] RFR (XS): 8131675: EA fails with assert(false) failed: not unsafe or G1 barrier raw StoreP
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list