[9] RFR(XS): 8157842: indexOfChar intrinsic is not emitted on x86
Tobias Hartmann
tobias.hartmann at oracle.com
Wed Jun 1 05:48:10 UTC 2016
Thanks, Vladimir!
Best regards,
Tobias
On 31.05.2016 20:04, Vladimir Kozlov wrote:
> Looks good.
>
> Thanks,
> Vladimir
>
> On 5/31/16 2:32 AM, Tobias Hartmann wrote:
>> Hi Vladimir,
>>
>> thanks for the review!
>>
>> On 30.05.2016 19:45, Vladimir Kozlov wrote:
>>> match_rule_supported() should check UseSSE42Intrinsics instead since it is used in predicate:
>>>
>>> predicate(UseSSE42Intrinsics);
>>> match(Set result (StrIndexOfChar (Binary str1 cnt1) ch));
>>
>> Right, checking for UseSSE42Intrinsics is more consistent.
>>
>>> Also we can remove "assert(UseSSE >= 4" in MacroAssembler::string_indexof_char() because UseSSE42Intrinsics will be false if UseSSE < 4. See code in vm_version_x86.cpp
>>
>> Okay, I also removed the same checks from the other string intrinsics.
>>
>> Here's the new webrev:
>> http://cr.openjdk.java.net/~thartmann/8157842/webrev.01/
>>
>> While testing I noticed that the VM crashes if UseSSE < 4 is set. I filed JDK-8158214.
>>
>> Thanks,
>> Tobias
>>
>> [1] https://bugs.openjdk.java.net/browse/JDK-8158214
>>
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 5/30/16 4:22 AM, Tobias Hartmann wrote:
>>>> Hi,
>>>>
>>>> please review the following patch:
>>>>
>>>> https://bugs.openjdk.java.net/browse/JDK-8157842
>>>> http://cr.openjdk.java.net/~thartmann/8157842/webrev.00/
>>>>
>>>> Andrew Haley noticed that there is a typo in x86.ad that prevents the StrIndexOfChar intrinsic from being emitted [1]. The problem is that we check for UseSSE > 4 instead of UseSSE >= 4 in Matcher::match_rule_supported() on x86.
>>>>
>>>> Tested with JPRT, RBT is running.
>>>>
>>>> Thanks,
>>>> Tobias
>>>>
>>>> [1] http://mail.openjdk.java.net/pipermail/hotspot-dev/2016-May/023218.html
>>>>
More information about the hotspot-compiler-dev
mailing list