RFR (M) 8152753: C1 intrinsics for CompareAndExchange (x86)
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Thu Apr 7 16:01:31 UTC 2016
Ok, I thought C2 support is already there on non-x86 platforms.
I'm fine with both approaches then.
Best regards,
Vladimir Ivanov
On 4/7/16 6:34 PM, Aleksey Shipilev wrote:
> On 04/07/2016 06:22 PM, Vladimir Ivanov wrote:
>> Why did you put the guards in vmIntrinsics::is_disabled_by_flags and not
>> Compiler::is_intrinsic_supported?
>>
>> vmIntrinsics::is_disabled_by_flags affects both C1 & C2, so you
>> effectively completely disable the intrinsics on all non-x86 platforms.
>>
>> I suggest to move InlineCompareAndExchange flag into c1_globals.hpp and
>> check it in Compiler::is_intrinsic_supported.
>
> I actually did that originally, see:
> http://cr.openjdk.java.net/~shade/8152753/webrev.00/
>
> ...but then moved that to vmIntrinsics::is_disabled_by_flags by John's
> suggestion -- all flag sensing is done there. It is a matter of
> approach, really, and I think current version aligns better with the
> existing intrinsic flags.
>
> Non-x86 platforms have not yet implemented CAE intrinsics, and this
> forces their hand to implement both C1 and C2 parts before flipping the
> platform-dependent flag. Which may or may not be a good thing, but I
> don't have preference either way.
>
> -Aleksey
>
>> On 4/1/16 5:37 PM, Aleksey Shipilev wrote:
>>> On 03/25/2016 07:29 PM, Aleksey Shipilev wrote:
>>>> I would like to solicit comments for C1 support for new
>>>> Unsafe.compareAndExchange intrinsics (we have support for them in C2).
>>>> The rest of new Unsafe methods that are not intrinsified by C1 are
>>>> handled by Java fallbacks in Unsafe.java. compareAndExchange cannot be
>>>> emulated with existing APIs.
>>>>
>>>> Bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8152753
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~shade/8152753/webrev.00/
>>>
>>> Update:
>>> http://cr.openjdk.java.net/~shade/8152753/webrev.01/
>>>
>>> Moved flags sensing to vmIntrinsics::is_disabled_by_flags, and did some
>>> other cleanups.
>>>
>>> Testing: compiler/unsafe regression tests; targeted microbenchmarks; RBT
>>> hs-comp testset (some unrelated timeouts on SPARC).
>>>
>>> Thanks,
>>> -Aleksey
>>>
>
>
More information about the hotspot-compiler-dev
mailing list