RFR(M): 8076188 Optimize arraycopy out for non escaping destination

Roland Westrelin roland.westrelin at oracle.com
Wed May 13 11:43:12 UTC 2015


Thanks Vladimir & Vladimir for the re-reviews.

Roland.

> On May 13, 2015, at 11:08 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> 
> Still looks fine.
> 
> Best regards,
> Vladimir Ivanov
> 
> On 5/12/15 1:40 PM, Roland Westrelin wrote:
>> 
>> jprt found some problems with this change. So I’d like to push:
>> 
>> http://cr.openjdk.java.net/~roland/8076188/webrev.00-01/
>> 
>> on top of the reviewed change. Overall change:
>> 
>> http://cr.openjdk.java.net/~roland/8076188/webrev.01/
>> 
>> List of fixes:
>> 
>> - tests with G1 failed in verification code. I made the change to LoadNode::Ideal() so the new code that looks for a dominating identical load is disabled for raw loads
>> 
>> - OptimizePtrCompare is broken in cases like the new test case added to TestEliminateArrayCopy.java: field from non escaping object should have an unknown value when the the object is target of an ArrayCopy.
>> 
>> - The ifnode change is unrelated (I found the problem when debugging one of the issues above) but it’s simple enough that I don’t think it needs its own CR.
>> 
>> Roland.
>> 
>>> On Apr 29, 2015, at 11:30 AM, Roland Westrelin <roland.westrelin at oracle.com> wrote:
>>> 
>>> Thanks for the review, Vladimir.
>>> 
>>> Roland.
>>> 
>>>> On Apr 28, 2015, at 4:42 PM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
>>>> 
>>>> Looks good.
>>>> 
>>>> Best regards,
>>>> Vladimir Ivanov
>>>> 
>>>> On 4/21/15 4:02 PM, Roland Westrelin wrote:
>>>>> http://cr.openjdk.java.net/~roland/8076188/webrev.00/
>>>>> 
>>>>> This patch tries to eliminate ArrayCopyNodes (for instance clones, array clones, arraycopy and copyOf) when the destination of the copy doesn’t escape:
>>>>> 
>>>>> - during escape analysis, ArrayCopyNodes don’t cause the destination of the copy to be marked as escaping anymore
>>>>> - a load to the destination of a copy may be replaced by a load from the source during IGVN
>>>>> - during macro expansion, ArrayCopyNodes don’t stop allocation from being eliminated and can themselves be eliminated
>>>>> 
>>>>> Roland.
>>>>> 
>>> 
>> 



More information about the hotspot-compiler-dev mailing list