RFR(XS) 8178047: Aliasing problem with raw memory accesses
Igor Veresov
igor.veresov at oracle.com
Fri Apr 14 18:04:48 UTC 2017
> On Apr 14, 2017, at 9:44 AM, Andrew Haley <aph at redhat.com> wrote:
>
> On 14/04/17 04:30, Igor Veresov wrote:
>> This seems like a long-standing bug. Analysis in MemNode::find_previous_store() tries to relax memory dependencies by proving that memory accesses don’t alias. The code is fine for oops: if [offset, offset+length) intervals don’t overlap it proves the accesses don’t alias because bases always point to the start of an object. For raw accesses that’s not true. Offset analysis doesn’t mean much without proving that bases are not the same.
>>
>> Webrev: http://cr.openjdk.java.net/~iveresov/8178047/webrev.00
>
> Please make sure that the test in https://bugs.openjdk.java.net/browse/JDK-8176513
> doesn't regress again.
It might be a problem with a test attached to the bug (it also needs b.capacity() / 4 in floss(), otherwise it would throw), but I don’t see vectorization happening at all. With or without my fix.
igor
>
> Thanks,
>
> Andrew.
>
More information about the hotspot-compiler-dev
mailing list