JDK-8265000 : Remove VM product flags related to Ahead-of-Time Compiler
  • Type: CSR
  • Component: hotspot
  • Sub-Component: compiler
  • Priority: P4
  • Status: Closed
  • Resolution: Approved
  • Fix Versions: 17
  • Submitted: 2021-04-09
  • Updated: 2021-04-14
  • Resolved: 2021-04-14
Related Reports
CSR :  
Description
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
Comments
Moving to Approved.
14-04-2021