RFR (S) 8153792: EA: assert(ptn->as_LocalVar()->edge_count() > 0) failed: sanity when compiling compareAndExchange
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed May 11 22:27:58 UTC 2016
The fix is good but fix indent:
+ if (opcode == Op_GetAndSetP || opcode == Op_GetAndSetN ||
+ opcode == Op_CompareAndExchangeN || opcode ==
Op_CompareAndExchangeP) {
Thanks,
Vladimir
On 5/11/16 3:16 PM, Aleksey Shipilev wrote:
> Hi,
>
> Please review the bugfix for the EA assert failure when compiling new
> compareAndExchange intrinsics:
> https://bugs.openjdk.java.net/browse/JDK-8153792
>
> The bug is caused by the initial VarHandles change in the EA, and is
> actually a simple overlook: Op_CompareAndExchange* were added at the
> same switch case as Op_GetAndSet* (since they are similar), but the
> condition within the case itself was not changed. So, EA misses an edge
> from the load, and complains.
>
> Easy fix:
> http://cr.openjdk.java.net/~shade/8153792/webrev.01/
>
> Testing: local Linux x86/fastdebug and failing test; RBT (hs-comp-tier0)
>
> Thanks,
> -Aleksey
>
More information about the hotspot-compiler-dev
mailing list