[9] RFR (XS): 8153357: C2 creates incorrect cast after eliminating phi with unique input

Zoltán Majó zoltan.majo at oracle.com
Mon Apr 18 09:22:38 UTC 2016


Hi Vladimir,


On 04/15/2016 07:27 PM, Vladimir Kozlov wrote:
> Looks good to me.

thank you for the review!

Best regards,


Zoltan

>
> thanks,
> Vladimir
>
> On 4/15/16 8:11 AM, Zoltán Majó wrote:
>> Hi Vladimir,
>>
>>
>> thank you for the feedback!
>>
>> On 04/15/2016 02:46 AM, Vladimir Kozlov wrote:
>>> I think check should use !isa_oopptr() since one of nodes could be 
>>> ConP NULL ptr which is not klassptr.
>>
>> Here is the updated webrev:
>> http://cr.openjdk.java.net/~zmajo/8153357/webrev.01/
>>
>> RBT testing passes. I did ~70 runs with the reproducer, no problems 
>> have shown up so far. I'll do ~900 more runs, though.
>>
>> Thank you!
>>
>> Best regards,
>>
>>
>> Zoltan
>>
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 4/14/16 6:21 AM, Zoltán Majó wrote:
>>>> Hi,
>>>>
>>>>
>>>> please review the patch for 8153357.
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8153357
>>>>
>>>> Problem: When determining the unique input of a phi, the C2 
>>>> compiler removes cast nodes connecting the phi to its
>>>> unique input.
>>>> http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/a76d63163758/src/share/vm/opto/cfgnode.cpp#l1181 
>>>>
>>>>
>>>> Then (if the phi has indeed a unique input), the C2 compiler 
>>>> attempts replace the phi with a cast node. The new cast
>>>> node feeds from the unique input.
>>>>
>>>> To be able to remove the phi node, the C2 compiler must  to 
>>>> determine the type of cast to add in place of the phi
>>>> node (CastII, CastPP, or CheckCastPP).
>>>> http://hg.openjdk.java.net/jdk9/hs-comp/hotspot/file/a76d63163758/src/share/vm/opto/cfgnode.cpp#l1705 
>>>>
>>>>
>>>> The failure in the bug report appears because the C2 compiler adds 
>>>> a cast node of unexpected type to the graph (a
>>>> CheckCastPP instead of a CastPP when casting between two klass 
>>>> pointers).
>>>>
>>>> Please find more details about the cause of the failure in the bug 
>>>> description:
>>>> https://bugs.openjdk.java.net/browse/JDK-8153357?focusedCommentId=13927108&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13927108 
>>>>
>>>>
>>>>
>>>>
>>>> Solution: Refine C2's logic to determine the type of cast node added.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~zmajo/8153357/webrev.00/
>>>>
>>>> Testing:
>>>> - JPRT;
>>>> - all hotspot compiler tests with RBT (-Xmixed, -Xcomp);
>>>> - 500 non-failing runs with the reproducer (the problem reproduces 
>>>> with < 100 runs).
>>>>
>>>> Thank you and best regards,
>>>>
>>>>
>>>> Zoltan
>>>>
>>



More information about the hotspot-compiler-dev mailing list