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