[9] RFR(S): 8162540: Crash in C2 escape analysis with assert: "node should be registered"
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Jul 27 17:59:32 UTC 2016
Yes, these are new nodes and new type of RAW access from Unsafe.
Changes are good.
Thanks,
Vladimir
On 7/27/16 7:03 AM, Tobias Hartmann wrote:
> Hi,
>
> please review the following patch:
> https://bugs.openjdk.java.net/browse/JDK-8162540
> http://cr.openjdk.java.net/~thartmann/8162540/webrev.00/
>
> We hit an assert in escape analysis because a field in the connection graph is not marked as "oop" although it points to an oop field:
> Field NoEscape(NoEscape) +24 ( 5610 )[ [ ]] 5370 AddP === _ 5610 5610 1498 [[ 5060 6247 ]] Oop:java/lang/Object+24 * [narrow] !jvms: LogManager::initializeGlobalHandlers @ bci:-1 LogManager::access$1800 @ bci:1 LogManager$RootLogger::accessCheckedHandlers @ bci:4 Logger::getHandlers @ bci:1 LogManager::closeHandlers @ bci:1 LogManager::resetLogger @ bci:2 LogManager::resetLoggerContext @ bci:39
>
> The AddP is used as input to a CompareAndSwapN intrinsic (see comments in the bug). ConnectionGraph::is_oop_field() misses the special cases for GetAndSet, CompareAndExchange and CompareAndSwap intrinsics emitting unsafe accesses to oop fields.
>
> Tested with failing tests, JPRT and RBT (running).
>
> Thanks,
> Tobias
>
More information about the hotspot-compiler-dev
mailing list