Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8265000

Remove VM product flags related to Ahead-of-Time Compiler

    XMLWordPrintable

Details

    • CSR
    • Resolution: Approved
    • P4
    • 17
    • hotspot
    • None
    • behavioral
    • low
    • All AOT flags were already marked as unsupported in JDK 16.
    • add/remove/modify command line option
    • Implementation

    Description

      Summary

      As part of JEP 410 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

      In JDK 16 we excluded AOT from builds 8255616 and marked all related bugs as unsupported: 8255914.

      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 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 " \

      Attachments

        Issue Links

          Activity

            People

              kvn Vladimir Kozlov
              kvn Vladimir Kozlov
              Igor Veresov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: