RFR (M) 8152753: C1 intrinsics for CompareAndExchange (x86)

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Apr 7 15:22:39 UTC 2016


Aleksey,

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.

Best regards,
Vladimir Ivanov

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