Summary
-------
As part of [JEP 410][1] Ahead-of-Time Compiler (AOT) code is removed from JDK.
Related code and flags (including product flags) in HotSpot are removed too: [AOT removal PR][2]
In JDK 16 we excluded AOT from builds [8255616][3] and marked all related bugs as unsupported: [8255914][4].
Problem
-------
Even so AOT is experimental feature it has several product flags (incorrectly).
We converted main AOT flags to experimental some time ago with [8227439][5] but missed few:
-XX:Tier3AOTInvocationThreshold=10000
-XX:Tier3AOTMinInvocationThreshold=1000
-XX:Tier3AOTCompileThreshold=15000
-XX:Tier3AOTBackEdgeThreshold=120000
-XX:+CalculateClassFingerprint
Solution
--------
Remove these flags as part of AOT removal changes.
Specification
-------------
Remove flags:
```
diff --git a/src/hotspot/share/compiler/compiler_globals.hpp b/src/hotspot/share/compiler/compiler_globals.hpp
index d12bb9ba7ba..050e5e1f6db 100644
--- a/src/hotspot/share/compiler/compiler_globals.hpp
+++ b/src/hotspot/share/compiler/compiler_globals.hpp
@@ -190,33 +190,6 @@
"Back edge threshold at which tier 3 OSR compilation is invoked") \
range(0, max_jint) \
\
- product(intx, Tier3AOTInvocationThreshold, 10000, \
- "Compile if number of method invocations crosses this " \
- "threshold if coming from AOT;" \
- "with CompilationMode=high-only|high-only-quick-internal)" \
- "determines when to transition from AOT to interpreter") \
- range(0, max_jint) \
- \
- product(intx, Tier3AOTMinInvocationThreshold, 1000, \
- "Minimum invocation to compile at tier 3 if coming from AOT;" \
- "with CompilationMode=high-only|high-only-quick-internal)" \
- "determines when to transition from AOT to interpreter") \
- range(0, max_jint) \
- \
- product(intx, Tier3AOTCompileThreshold, 15000, \
- "Threshold at which tier 3 compilation is invoked (invocation " \
- "minimum must be satisfied) if coming from AOT;" \
- "with CompilationMode=high-only|high-only-quick-internal)" \
- "determines when to transition from AOT to interpreter") \
- range(0, max_jint) \
- \
- product(intx, Tier3AOTBackEdgeThreshold, 120000, \
- "Back edge threshold at which tier 3 OSR compilation is invoked " \
- "if coming from AOT;" \
- "with CompilationMode=high-only|high-only-quick-internal)" \
- "determines when to transition from AOT to interpreter") \
- range(0, max_jint) \
- \
product(intx, Tier4InvocationThreshold, 5000, \
"Compile if number of method invocations crosses this " \
"threshold") \
```
```
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index f3a8fa00a35..f49a5d97a6a 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -1656,25 +1656,6 @@ const intx ObjectAlignmentInBytes = 8;
"Non-segmented code cache: X[%] of the total code cache") \
range(0, 100) \
\
- /* AOT parameters */ \
- product(bool, UseAOT, false, EXPERIMENTAL, \
- "Use AOT compiled files") \
- \
- product(ccstrlist, AOTLibrary, NULL, EXPERIMENTAL, \
- "AOT library") \
- \
- product(bool, PrintAOT, false, EXPERIMENTAL, \
- "Print used AOT klasses and methods") \
- \
- notproduct(bool, PrintAOTStatistics, false, \
- "Print AOT statistics") \
- \
- product(bool, UseAOTStrictLoading, false, DIAGNOSTIC, \
- "Exit the VM if any of the AOT libraries has invalid config") \
- \
- product(bool, CalculateClassFingerprint, false, \
- "Calculate class fingerprint") \
- \
/* interpreter debugging */ \
develop(intx, BinarySwitchThreshold, 5, \
"Minimal number of lookupswitch entries for rewriting to binary " \
```
[1]: http://openjdk.java.net/jeps/410
[2]: https://github.com/openjdk/jdk/pull/3398
[3]: https://bugs.openjdk.java.net/browse/JDK-8255616
[4]: https://bugs.openjdk.java.net/browse/JDK-8255914
[5]: https://bugs.openjdk.java.net/browse/JDK-8227439