RFR(M):8188139:PPC64: Superword Level Parallelization with VSX

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Sep 29 21:44:10 UTC 2017


I am fine with it for these changes.

Thanks,
Vladimir

On 9/29/17 12:19 PM, Gustavo Romero wrote:
> Hi Vladimir,
> 
> On 29-09-2017 16:00, Vladimir Kozlov wrote:
>> I looked on shared code. One comment - change in opto/type.cpp affects s390.
> 
> Do you strongly oppose to split PPC64 and s390 like?
> 
> diff -r e93ed1a09240 src/share/vm/opto/type.cpp
> --- a/src/share/vm/opto/type.cpp        Tue Aug 08 22:57:34 2017 +0000
> +++ b/src/share/vm/opto/type.cpp        Fri Sep 29 15:17:17 2017 -0400
> @@ -67,7 +67,13 @@
>     { Bad,             T_ILLEGAL,    "vectorx:",      false, 0,                    relocInfo::none          },  // VectorX
>     { Bad,             T_ILLEGAL,    "vectory:",      false, 0,                    relocInfo::none          },  // VectorY
>     { Bad,             T_ILLEGAL,    "vectorz:",      false, 0,                    relocInfo::none          },  // VectorZ
> -#elif defined(PPC64) || defined(S390)
> +#elif defined(PPC64)
> +  { Bad,             T_ILLEGAL,    "vectors:",      false, 0,                    relocInfo::none          },  // VectorS
> +  { Bad,             T_ILLEGAL,    "vectord:",      false, Op_RegL,              relocInfo::none          },  // VectorD
> +  { Bad,             T_ILLEGAL,    "vectorx:",      false, Op_VecX,              relocInfo::none          },  // VectorX
> +  { Bad,             T_ILLEGAL,    "vectory:",      false, 0,                    relocInfo::none          },  // VectorY
> +  { Bad,             T_ILLEGAL,    "vectorz:",      false, 0,                    relocInfo::none          },  // VectorZ
> +#elif defined(S390)
>     { Bad,             T_ILLEGAL,    "vectors:",      false, 0,                    relocInfo::none          },  // VectorS
>     { Bad,             T_ILLEGAL,    "vectord:",      false, Op_RegL,              relocInfo::none          },  // VectorD
>     { Bad,             T_ILLEGAL,    "vectorx:",      false, 0,                    relocInfo::none          },  // VectorX
> 
> 
> Kind regards,
> Gustavo
> 
>> Vladimir
>>
>> On 9/29/17 2:37 AM, Michihiro Horie wrote:
>>> Dear all,
>>>
>>> Would you please review the following change?
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8188139
>>> Webrev: http://cr.openjdk.java.net/~mhorie/8188139/webrev.00/
>>>
>>> This change introduces to use VSX for Superword Level Parallelization, concretely VSX instructions are emitted for Replicate[BSIFDL] nodes in ppc.ad.
>>> Since I am not familiar with the hotspot's register allocation and the TOC use in POWER, I would be very grateful to have any comments to improve the change.
>>>
>>> In addition, the change includes some minor fixes in assembler_ppc.inline.hpp. I think there are some instructions that should have 1u in higher bits.
>>>
>>>
>>> I used the attached micro benchmark.
>>> /(See attached file: ArraysFillTest.java)/
>>>
>>> Best regards,
>>> -- 
>>> Michihiro,
>>> IBM Research - Tokyo
>>>
>>
> 


More information about the ppc-aix-port-dev mailing list