RFR(S): 8132457: Unify command-line flags controlling the usage of compiler intrinsics
vladimir.kozlov at oracle.com
Fri Jul 31 15:18:12 UTC 2015
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