RFR (M): 8143355: Update for addition of vectorizedMismatch intrinsic for x86

Christian Thalinger christian.thalinger at oracle.com
Tue Dec 8 18:57:57 UTC 2015


+  product(bool, UseVectorizedMismatchIntrinsic, false,                      \
+          "Enables intrinsification of ArraysSupport.vectorizedMismatch()") \

Do all these really need to be product flags?

> On Dec 7, 2015, at 2:26 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> Looks good. I will push it when closed part (flag = false) reviewed.
> I will modify vm_version_x86.cpp to move setting to false in 32-bit VM code to be #else part of flag's setting.
> 
> Thanks,
> Vladimir
> 
> On 12/7/15 11:29 AM, Deshpande, Vivek R wrote:
>> Hi Vladimir
>> 
>> We have updated the jbs entry with your suggested changes for the flag.
>> Would you please review it.
>> jbs entry: https://bugs.openjdk.java.net/browse/JDK-8143355
>> webrev is at: http://cr.openjdk.java.net/~mcberg/8143355/webrev.03/
>> 
>> Regards,
>> Vivek
>> 
>> 
>> -----Original Message-----
>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
>> Sent: Friday, December 04, 2015 1:12 PM
>> To: Deshpande, Vivek R; hotspot compiler
>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric; Paul Sandoz
>> Subject: Re: RFR (M): 8143355: Update for addition of vectorizedMismatch intrinsic for x86
>> 
>> You don't need now #ifdef COMPILER2 (in vm_version_x86.cpp).
>> 
>> + #ifdef COMPILER2
>> + #ifdef _LP64
>> +   if (UseSSE42Intrinsics) {
>> 
>> Also you need to add to all other platforms vm_version_<arch>.cpp setting flag to false. See UseAdler32Intrinsics settings as example.
>> 
>> Thanks,
>> Vladimir
>> 
>> On 12/4/15 11:26 AM, Deshpande, Vivek R wrote:
>>> Hi Vladimir
>>> 
>>> We have updated the webrev at the jbs entry with the global flag.
>>> This is the link for your review.
>>> http://cr.openjdk.java.net/~mcberg/8143355/webrev.02/
>>> 
>>> Regards
>>> Vivek
>>> -----Original Message-----
>>> From: Deshpande, Vivek R
>>> Sent: Wednesday, December 02, 2015 11:21 AM
>>> To: 'Vladimir Kozlov'; hotspot compiler
>>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric; 'Paul Sandoz'
>>> Subject: RE: RFR (M): 8143355: Update for addition of
>>> vectorizedMismatch intrinsic for x86
>>> 
>>> Hi Vladimir
>>> 
>>> Yes the 2x performance gain is using AVX2 instructions for big arrays(~1k).
>>> We will update the patch and jbs entry with global flag and let you know soon.
>>> 
>>> Regards,
>>> Vivek
>>> 
>>> 
>>> -----Original Message-----
>>> From: Vladimir Kozlov [mailto:vladimir.kozlov at oracle.com]
>>> Sent: Tuesday, December 01, 2015 6:02 PM
>>> To: Deshpande, Vivek R; hotspot compiler
>>> Cc: Yi, Liqi; Viswanathan, Sandhya; Kaczmarek, Eric
>>> Subject: Re: RFR (M): 8143355: Update for addition of
>>> vectorizedMismatch intrinsic for x86
>>> 
>>>      2) improving C1 (perhaps even the interpreter?) since the intrinsic is a stub which IIUC makes it easier to plug in.
>>> 
>>> If that is the case the flag should be global.
>>> 
>>> Thanks,
>>> Vladimir
>>> 
>>> On 12/1/15 5:48 PM, Vladimir Kozlov wrote:
>>>> This seems fine. 2x is for AVX implementation?
>>>> 
>>>> Thanks,
>>>> Vladimir
>>>> 
>>>> On 11/24/15 4:00 PM, Deshpande, Vivek R wrote:
>>>>> Hi all
>>>>> 
>>>>> We would like to contribute a patch from Intel which optimizes
>>>>> vectorizedMismatch() method in java.util.ArraysSupport.java for X86
>>>>> architecture using AVX instructions.
>>>>> 
>>>>> The improvement gives more than 2x gain over Unsafe implementation
>>>>> for long arrays.
>>>>> 
>>>>> 
>>>>>    The bug is blocked by bug: vectorized support for array
>>>>>    equals/compare/mismatch using Unsafe
>>>>>    (https://bugs.openjdk.java.net/browse/JDK-8136924.)
>>>>> 
>>>>> Could you please review and sponsor this patch.
>>>>> 
>>>>> Bug-id:
>>>>> 
>>>>> https://bugs.openjdk.java.net/browse/JDK-8143355
>>>>> webrev:
>>>>> 
>>>>> http://cr.openjdk.java.net/~mcberg/8143355/webrev.01/
>>>>> 
>>>>> Thanks and regards,
>>>>> 
>>>>> Vivek
>>>>> 



More information about the hotspot-compiler-dev mailing list