RFR(S): 8132457: Unify command-line flags controlling the usage of compiler intrinsics
zoltan.majo at oracle.com
Mon Aug 3 07:22:38 UTC 2015
Thank you, Vladimir!
On 07/31/2015 05:18 PM, Vladimir Kozlov wrote:
> Very nice cleanup. Thank you, Zoltan.
> On 7/31/15 3:02 AM, Zoltán Majó wrote:
>> please review the following patch for JDK-8132457.
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8132457
>> Problem: There are four cases when flags controlling intrinsics for
>> C1 and C2 behave inconsistently:
>> 1) The DisableIntrinsic flag is C2-specific.
>> 2) The InlineNatives flag disables most but not all intrinsics. Some
>> intrinsics (implemented by both C1 and C2) are
>> turned off by -XX:-InlineNatives for C1 but are left on for C2.
>> 3) The _getClass intrinsic (implemented by both C1 and C2) is turned
>> off by -XX:-InlineClassNatives for C1 and is left
>> unaffected by C2.
>> 4) The _loadfence, _storefence, _fullfence, _compareAndSwapObject,
>> _compareAndSwapLong, and _compareAndSwapInt
>> intrinsics are turned off by -XX:-InlineUnsafeOps for C2 and are
>> unaffected by C1.
>> Solution: Unify command-line flags controlling intrinsic processing.
>> Processing of command-line flags is now done only
>> in vmIntrinsics::is_disabled_by_flags and there is no
>> compiler-specific flag processing.
>> The inconsistencies listed in the problem description were addressed
>> the following way:
>> 1) Extend the C1 compiler to consider the DisableIntrinsic flag when
>> checking if an intrinsic is available.
>> 2) -XX:-InlineNatives turns off most intrinsics but leaves on some
>> intrinsics (the same set of intrinsics are left on
>> for both C1 and C2).
>> 3) -XX:-InlineClassNatives turns off the _getClass intrinsic for both
>> C1 and C2.
>> 4) -XX:-InlineUnsafeOps turns off the _loadfence, _storefence,
>> _fullfence, _compareAndSwapObject, _compareAndSwapLong,
>> and _compareAndSwapInt intrinsics for both C1 and C2.
>> - JPRT run, testset hotspot, all tests pass;
>> - all JTREG tests in hotspot/test, all tests pass;
>> - local testing of DisableIntrinsic with both C1 and C2.
>> Thank you and best regards,
More information about the hotspot-compiler-dev