diff --git a/closed/OpenJ9.gmk b/closed/OpenJ9.gmk index 611b8013df3..83dce8d3b46 100644 --- a/closed/OpenJ9.gmk +++ b/closed/OpenJ9.gmk @@ -170,6 +170,13 @@ else # OPENJ9_ENABLE_OPENJDK_METHODHANDLES FEATURE_SED_SCRIPT += $(call SedDisable,opt_openjdkMethodhandle) endif # OPENJ9_ENABLE_OPENJDK_METHODHANDLES +# Adjust MicroJIT enablement flags. +ifeq (true,$(OPENJ9_ENABLE_MICROJIT)) + FEATURE_SED_SCRIPT += $(call SedEnable,opt_microjit) +else + FEATURE_SED_SCRIPT += $(call SedDisable,opt_microjit) +endif # OPENJ9_ENABLE_MICROJIT + # openj9_stage_buildspec_file # --------------------------- # param 1 = The simple name of the file to copy. @@ -346,6 +353,12 @@ else # OPENJ9_ENABLE_OPENJDK_METHODHANDLES CMAKE_ARGS += -DJ9VM_OPT_OPENJDK_METHODHANDLE=OFF endif # OPENJ9_ENABLE_OPENJDK_METHODHANDLES +ifeq (true,$(OPENJ9_ENABLE_MICROJIT)) + CMAKE_ARGS += -DJ9VM_OPT_MICROJIT=ON +else + CMAKE_ARGS += -DJ9VM_OPT_MICROJIT=OFF +endif # OPENJ9_ENABLE_MICROJIT + ifneq (,$(filter debug trace, $(LOG_LEVEL))) # The user said LOG=debug or LOG=trace, so tell cmake to echo commands. CMAKE_ARGS += -DCMAKE_VERBOSE_MAKEFILE=ON @@ -389,6 +402,10 @@ ifeq (true,$(OPENJ9_ENABLE_JITSERVER)) endif endif # OPENJ9_ENABLE_JITSERVER +ifeq (true,$(OPENJ9_ENABLE_MICROJIT)) + CUSTOM_COMPILER_ENV_VARS += J9VM_OPT_MICROJIT=1 +endif # OPENJ9_ENABLE_MICROJIT + run-preprocessors-j9 : stage-j9 @$(ECHO) Running OpenJ9 preprocessors with OPENJ9_BUILDSPEC: $(OPENJ9_BUILDSPEC) @$(MKDIR) -p $(J9TOOLS_DIR) diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh index 263d37f2a0b..e925b9c2012 100644 --- a/common/autoconf/generated-configure.sh +++ b/common/autoconf/generated-configure.sh @@ -4433,7 +4433,7 @@ VS_SDK_PLATFORM_NAME_2017= #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1649701470 +DATE_WHEN_GENERATED=1652392606 ############################################################################### # diff --git a/jdk/make/closed/autoconf/custom-hook.m4 b/jdk/make/closed/autoconf/custom-hook.m4 index 4b901355a18..5bfba5722f1 100644 --- a/jdk/make/closed/autoconf/custom-hook.m4 +++ b/jdk/make/closed/autoconf/custom-hook.m4 @@ -48,6 +48,7 @@ AC_DEFUN_ONCE([CUSTOM_EARLY_HOOK], OPENJ9_CONFIGURE_JITSERVER OPENJ9_CONFIGURE_OPENJDK_METHODHANDLES OPENJ9_CONFIGURE_WARNINGS + OPENJ9_CONFIGURE_MICROJIT if test "x$OPENJDK_TARGET_OS" = xwindows ; then BASIC_SETUP_OUTPUT_DIR @@ -384,6 +385,31 @@ AC_DEFUN([OPENJ9_CONFIGURE_WARNINGS], AC_SUBST(WARNINGS_AS_ERRORS_OPENJ9) ]) +AC_DEFUN([OPENJ9_CONFIGURE_MICROJIT], +[ + AC_ARG_ENABLE([microjit], [AS_HELP_STRING([--enable-microjit], [enable MicroJIT support @<:@disabled@:>@])]) + + AC_MSG_CHECKING([for microjit]) + OPENJ9_ENABLE_MICROJIT=false + if test "x$enable_microjit" = xyes ; then + if test "x$OPENJDK_TARGET_OS" = xlinux ; then + AC_MSG_RESULT([yes (explicitly enabled)]) + OPENJ9_ENABLE_MICROJIT=true + else + AC_MSG_RESULT([no (unsupported platform)]) + AC_MSG_ERROR([MicroJIT is unsupported for $OPENJDK_TARGET_OS]) + fi + elif test "x$enable_microjit" = xno ; then + AC_MSG_RESULT([no (explicitly disabled)]) + elif test "x$enable_microjit" = x ; then + AC_MSG_RESULT([no (default)]) + else + AC_MSG_ERROR([--enable-microjit accepts no argument]) + fi + + AC_SUBST(OPENJ9_ENABLE_MICROJIT) +]) + AC_DEFUN([OPENJ9_PLATFORM_SETUP], [ AC_ARG_WITH(noncompressedrefs, [AS_HELP_STRING([--with-noncompressedrefs], diff --git a/jdk/make/closed/autoconf/custom-spec.gmk.in b/jdk/make/closed/autoconf/custom-spec.gmk.in index 74166c6a3ea..322d8cb8495 100644 --- a/jdk/make/closed/autoconf/custom-spec.gmk.in +++ b/jdk/make/closed/autoconf/custom-spec.gmk.in @@ -62,6 +62,9 @@ OPENJ9_ENABLE_INLINE_TYPES := @OPENJ9_ENABLE_INLINE_TYPES@ OPENJ9_ENABLE_JITSERVER := @OPENJ9_ENABLE_JITSERVER@ OPENJ9_ENABLE_OPENJDK_METHODHANDLES := @OPENJ9_ENABLE_OPENJDK_METHODHANDLES@ +# MICROJIT +OPENJ9_ENABLE_MICROJIT := @OPENJ9_ENABLE_MICROJIT@ + # for constructing version output COMPILER_VERSION_STRING := @COMPILER_VERSION_STRING@ USERNAME := @USERNAME@ diff --git a/jdk/make/closed/autoconf/generated-configure.sh b/jdk/make/closed/autoconf/generated-configure.sh index 54277eed70f..fc937d6b0de 100644 --- a/jdk/make/closed/autoconf/generated-configure.sh +++ b/jdk/make/closed/autoconf/generated-configure.sh @@ -895,6 +895,7 @@ CYGWIN_LINK OUTPUT_ROOT CONF_NAME SPEC +OPENJ9_ENABLE_MICROJIT WARNINGS_AS_ERRORS_OPENJ9 WARNINGS_AS_ERRORS_OMR OPENJ9_ENABLE_OPENJDK_METHODHANDLES @@ -1103,6 +1104,7 @@ enable_jitserver enable_openjdk_methodhandles enable_warnings_as_errors_omr enable_warnings_as_errors_openj9 +enable_microjit with_conf_name with_toolchain_version with_freemarker_jar @@ -1937,6 +1939,7 @@ Optional Features: --disable-warnings-as-errors-openj9 do not consider OpenJ9 native compile warnings to be errors [enabled] + --enable-microjit enable MicroJIT support [disabled] --disable-headful disable building headful support (graphical UI support) [enabled] --enable-hotspot-test-in-build @@ -4591,6 +4594,8 @@ VS_SDK_PLATFORM_NAME_2017= + + @@ -4604,7 +4609,7 @@ VS_SDK_PLATFORM_NAME_2017= # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1649701470 +DATE_WHEN_GENERATED=1652392606 ############################################################################### # @@ -16478,6 +16483,38 @@ $as_echo "yes (default)" >&6; } + # Check whether --enable-microjit was given. +if test "${enable_microjit+set}" = set; then : + enableval=$enable_microjit; +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for microjit" >&5 +$as_echo_n "checking for microjit... " >&6; } + OPENJ9_ENABLE_MICROJIT=false + if test "x$enable_microjit" = xyes ; then + if test "x$OPENJDK_TARGET_OS" = xlinux ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (explicitly enabled)" >&5 +$as_echo "yes (explicitly enabled)" >&6; } + OPENJ9_ENABLE_MICROJIT=true + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (unsupported platform)" >&5 +$as_echo "no (unsupported platform)" >&6; } + as_fn_error $? "MicroJIT is unsupported for $OPENJDK_TARGET_OS" "$LINENO" 5 + fi + elif test "x$enable_microjit" = xno ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (explicitly disabled)" >&5 +$as_echo "no (explicitly disabled)" >&6; } + elif test "x$enable_microjit" = x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (default)" >&5 +$as_echo "no (default)" >&6; } + else + as_fn_error $? "--enable-microjit accepts no argument" "$LINENO" 5 + fi + + + + if test "x$OPENJDK_TARGET_OS" = xwindows ; then