RFR(XS): 8080699: Assert failed: Not a Java pointer in JCK test
Roland Westrelin
roland.westrelin at oracle.com
Wed May 20 18:57:06 UTC 2015
Thanks for looking at this, Vladimir.
> Should it also return false if in(ArrayCopyNode::Src)->is_top()?
That doesn’t feel right: ArrayCopyNode::may_modify() would decide what to return based on src that it doesn’t modify.
Also, I don’t think src can become top and dest not be top during allocation elimination. If that happens at another time (igvn for instance), this part of the graph is being removed and presumably the compiler will get an other chance to optimize it better.
Roland.
>
> thanks,
> Vladimir
>
> On 5/20/15 7:03 AM, Roland Westrelin wrote:
>> http://cr.openjdk.java.net/~roland/8080699/webrev.00/
>>
>> When an arraycopy node is eliminated (for a non escaping allocation), its control, src and dest arguments are set to top and it is no longer connected to the rest of the graph through its fall through outputs. It’s not entirely removed from the graph until the next igvn though, and it can be reached through its exception processing outputs. That’s what happens here and ArrayCopyNode::may_modify() assumes dest, that is top, is an oop.
>>
>> Roland.
>>
More information about the hotspot-compiler-dev
mailing list