[9] RFR(S): 8132457: Unify command-line flags controlling the usage of compiler intrinsics (original) (raw)
Zoltán Majó zoltan.majo at oracle.com
Fri Jul 31 10:02:06 UTC 2015
- Previous message: RFR: 8078743: AARCH64: Extend use of stlr to cater for volatile object stores
- Next message: [9] RFR(S): 8132457: Unify command-line flags controlling the usage of compiler intrinsics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi,
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:
- The DisableIntrinsic flag is C2-specific.
- 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.
- The _getClass intrinsic (implemented by both C1 and C2) is turned off by -XX:-InlineClassNatives for C1 and is left unaffected by C2.
- 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:
- Extend the C1 compiler to consider the DisableIntrinsic flag when checking if an intrinsic is available.
- -XX:-InlineNatives turns off most intrinsics but leaves on some intrinsics (the same set of intrinsics are left on for both C1 and C2).
- -XX:-InlineClassNatives turns off the _getClass intrinsic for both C1 and C2.
- -XX:-InlineUnsafeOps turns off the _loadfence, _storefence, _fullfence, _compareAndSwapObject, _compareAndSwapLong, and _compareAndSwapInt intrinsics for both C1 and C2.
Webrev: http://cr.openjdk.java.net/~zmajo/8132457/webrev.00/
Testing:
- 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,
Zoltan
- Previous message: RFR: 8078743: AARCH64: Extend use of stlr to cater for volatile object stores
- Next message: [9] RFR(S): 8132457: Unify command-line flags controlling the usage of compiler intrinsics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the hotspot-compiler-dev mailing list