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

Add JVM option to enable JVMCI compilers in product mode

    Details

    • Subcomponent:
    • Resolved In Build:
      b21

      Backports

        Description

        This RFE adds a new JVM option "-XX:+EnableJVMCIProduct" which will allow JVMCI to be used as the default compiler, and alter a collection of JVM options to be product flags rather than experimental flags.

        EnableJVMCIProduct is an experimental flag since the default JVMCI running mode is still experimental. A vendor wishing to support their JVMCI compiler as the default can enable JVMCI by default by specifying this new -XX:+EnableJVMCIProduct flag after the -XX:+UnlockExperimentalVMOptions flag. This flag is especially useful when added to a JDK runtime generated with the new jlink --add-options plugin (see JDK-8232080). This allows JVMCI based compilers to be used, by default, without the user having to specify any options.

        When the -XX:+UnlockExperimentalVMOptions and -XX:+EnableJVMCIProduct flags are specified then the following JVM options are altered:

        1. These flags are converted from experimental to product flags:

            "EnableJVMCI",
            "EnableJVMCIProduct",
            "UseJVMCICompiler",
            "JVMCIPrintProperties",
            "EagerJVMCI",
            "JVMCIThreads",
            "JVMCICounterSize",
            "JVMCICountersExcludeCompiler",
            "JVMCINMethodSizeLimit",
            "JVMCILibPath",
            "JVMCILibDumpJNIConfig",
            "UseJVMCINativeLibrary"

        2. The UseJVMCICompiler and EnableJVMCI flags are set to true.

        Independent of the state of the EnableJVMCIProduct flag, this RFE also adds dynamic setting of UseJVMCINativeLibrary. If UseJVMCICompiler is enabled and a libjvmcicompiler shared library is found in the JDK lib directory, the UseJVMCINativeLibrary flag will be set to true, otherwise this flag is set to false. Specifiying UseJVMCINativeLibrary on the command line, overrides this behavior.

        If you use the jlink --add-options plugin to add this option to a custom image then we recommend this sequence of options: -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:-UnlockExperimentalVMOptions. The last option ensures that other experimental VM options are still locked from the perspective of the command-line user.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  bobv Bob Vandette
                  Reporter:
                  bobv Bob Vandette
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: