From e4efbabbc467bcf61e958e591a153f34ba8034df Mon Sep 17 00:00:00 2001 From: twisti Date: Thu, 8 Oct 2015 11:31:14 -1000 Subject: [PATCH] 8136421: JEP 243: Java-Level JVM Compiler Interface Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett --- .hgignore | 2 ++ make/CompileJavaModules.gmk | 15 ++++++++++++++- make/Images.gmk | 3 ++- make/Main.gmk | 9 ++++++++- make/MainSupport.gmk | 5 +++-- make/common/Modules.gmk | 1 + modules.xml | 14 ++++++++++++++ test/lib/sun/hotspot/WhiteBox.java | 11 +++++++++++ test/lib/sun/hotspot/code/NMethod.java | 5 ++++- 9 files changed, 59 insertions(+), 6 deletions(-) diff --git a/.hgignore b/.hgignore index ee5ec9160d..49620dba79 100644 --- a/.hgignore +++ b/.hgignore @@ -5,3 +5,5 @@ nbproject/private/ ^.hgtip ^.bridge2 .DS_Store +.metadata/ +.recommenders/ diff --git a/make/CompileJavaModules.gmk b/make/CompileJavaModules.gmk index 2524e193ec..7df66e8c03 100644 --- a/make/CompileJavaModules.gmk +++ b/make/CompileJavaModules.gmk @@ -438,6 +438,18 @@ jdk.jvmstat_COPY := aliasmap ################################################################################ +jdk.vm.ci_EXCLUDE_FILES += \ + jdk/vm/ci/options/processor/OptionProcessor.java \ + jdk/vm/ci/service/processor/ServiceProviderProcessor.java \ + # + +jdk.vm.ci_EXCLUDES += \ + META-INF/jvmci.options \ + META-INF/jvmci.providers \ + # + +################################################################################ + jdk.xml.bind_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS jdk.xml.bind_CLEAN := .properties jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java @@ -479,6 +491,7 @@ ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE)) endif SHARE_SRC_DIRS += \ + $(HOTSPOT_TOPDIR)/src/$1/share/classes \ $(JDK_TOPDIR)/src/$1/share/classes \ $(LANGTOOLS_TOPDIR)/src/$1/share/classes \ $(CORBA_TOPDIR)/src/$1/share/classes \ @@ -531,7 +544,7 @@ define SetupModuleCompilation $$(eval $$(call SetupJavaCompilation,$1, \ SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \ - SRC := $$(wildcard $$(call ALL_SRC_DIRS,$1)), \ + SRC := $$(if $$($1_SRC), $$($1_SRC), $$(wildcard $$(call ALL_SRC_DIRS,$1))), \ INCLUDES := $(JDK_USER_DEFINED_FILTER),\ BIN := $$(if $$($1_BIN), $$($1_BIN), $(JDK_OUTPUTDIR)/modules/$1), \ HEADERS := $(SUPPORT_OUTPUTDIR)/headers/$1, \ diff --git a/make/Images.gmk b/make/Images.gmk index c404a89ee3..0c401c8dc7 100644 --- a/make/Images.gmk +++ b/make/Images.gmk @@ -39,7 +39,8 @@ $(eval $(call IncludeCustomExtension, , Images-pre.gmk)) MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \ jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \ - jdk.accessibility jdk.internal.le jdk.scripting.nashorn.shell + jdk.accessibility jdk.internal.le jdk.scripting.nashorn.shell \ + jdk.vm.ci # providers PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \ diff --git a/make/Main.gmk b/make/Main.gmk index 5e842fdebc..47ba102d6e 100644 --- a/make/Main.gmk +++ b/make/Main.gmk @@ -107,6 +107,7 @@ $(eval $(call DeclareRecipesForPhase, GENSRC, \ JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS)) LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS)) CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS)) +HOTSPOT_GENSRC_TARGETS := $(filter %-gensrc-hotspot, $(GENSRC_TARGETS)) ALL_TARGETS += $(GENSRC_TARGETS) @@ -128,7 +129,8 @@ $(eval $(call DeclareRecipesForPhase, COPY, \ FILE_PREFIX := Copy, \ MAKE_SUBDIR := copy, \ CHECK_MODULES := $(ALL_MODULES), \ - USE_WRAPPER := true)) + USE_WRAPPER := true, \ + MULTIPLE_MAKEFILES := true)) ALL_TARGETS += $(COPY_TARGETS) @@ -352,6 +354,8 @@ else $(CORBA_GENSRC_TARGETS): interim-langtools + $(HOTSPOT_GENSRC_TARGETS): interim-langtools + $(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk $(GENDATA_TARGETS): interim-langtools buildtools-jdk @@ -415,6 +419,9 @@ else # Explicitly add dependencies for special targets java.base-java: unpack-sec + # The copy target copies files generated by gensrc + java.base-copy-hotspot: java.base-gensrc-hotspot + jdk.jdeps-gendata: java rmic zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \ diff --git a/make/MainSupport.gmk b/make/MainSupport.gmk index 3564f8bc79..5d7226a0eb 100644 --- a/make/MainSupport.gmk +++ b/make/MainSupport.gmk @@ -108,7 +108,8 @@ endef ################################################################################ -MAKE_TOPDIR_LIST := $(JDK_TOPDIR) $(CORBA_TOPDIR) $(LANGTOOLS_TOPDIR) +MAKE_TOPDIR_LIST := $(JDK_TOPDIR) $(CORBA_TOPDIR) $(LANGTOOLS_TOPDIR) \ + $(HOTSPOT_TOPDIR) MAKE_MAKEDIR_LIST := make # Helper macro for DeclareRecipesForPhase @@ -179,7 +180,7 @@ endef # FILE_PREFIX : File prefix for this build phase # USE_WRAPPER : Set to true to use ModuleWrapper.gmk # CHECK_MODULES : List of modules to try -# MULTIPLE_MAKEFILES : Set to true to handle makefils for the same module in +# MULTIPLE_MAKEFILES : Set to true to handle makefiles for the same module and # phase in multiple repos # Exported variables: # $1_MODULES : All modules that had rules generated diff --git a/make/common/Modules.gmk b/make/common/Modules.gmk index 4bfd6538b2..007634c18c 100644 --- a/make/common/Modules.gmk +++ b/make/common/Modules.gmk @@ -33,6 +33,7 @@ include SetupJavaCompilers.gmk # Module list macros ALL_TOP_SRC_DIRS := \ + $(HOTSPOT_TOPDIR)/src \ $(JDK_TOPDIR)/src \ $(LANGTOOLS_TOPDIR)/src \ $(CORBA_TOPDIR)/src \ diff --git a/modules.xml b/modules.xml index 2c8ddccc9a..9c384a1e66 100644 --- a/modules.xml +++ b/modules.xml @@ -237,6 +237,7 @@ java.instrument jdk.jfr jdk.scripting.nashorn + jdk.vm.ci jdk.internal.org.objectweb.asm.commons @@ -290,6 +291,7 @@ jdk.security.auth jdk.security.jgss jdk.snmp + jdk.vm.ci java.instrument @@ -1871,6 +1873,18 @@ com.sun.security.jgss + + jdk.vm.ci + java.base + + jdk.vm.ci.hotspot + jdk.jfr + + + jdk.vm.ci.hotspot.events + jdk.jfr + + jdk.xml.bind java.activation diff --git a/test/lib/sun/hotspot/WhiteBox.java b/test/lib/sun/hotspot/WhiteBox.java index 075188ed8c..0b0f096e30 100644 --- a/test/lib/sun/hotspot/WhiteBox.java +++ b/test/lib/sun/hotspot/WhiteBox.java @@ -112,6 +112,12 @@ public class WhiteBox { public native void forceSafepoint(); + private native long getConstantPool0(Class aClass); + public long getConstantPool(Class aClass) { + Objects.requireNonNull(aClass); + return getConstantPool0(aClass); + } + // JVMTI private native void addToBootstrapClassLoaderSearch0(String segment); public void addToBootstrapClassLoaderSearch(String segment){ @@ -289,6 +295,11 @@ public class WhiteBox { public native void forceNMethodSweep(); public native Object[] getCodeHeapEntries(int type); public native int getCompilationActivityMode(); + private native long getMethodData0(Executable method); + public long getMethodData(Executable method) { + Objects.requireNonNull(method); + return getMethodData0(method); + } public native Object[] getCodeBlob(long addr); // Intered strings diff --git a/test/lib/sun/hotspot/code/NMethod.java b/test/lib/sun/hotspot/code/NMethod.java index f82b38d871..87f4b8faf8 100644 --- a/test/lib/sun/hotspot/code/NMethod.java +++ b/test/lib/sun/hotspot/code/NMethod.java @@ -35,14 +35,16 @@ public class NMethod extends CodeBlob { } private NMethod(Object[] obj) { super((Object[])obj[0]); - assert obj.length == 4; + assert obj.length == 5; comp_level = (Integer) obj[1]; insts = (byte[]) obj[2]; compile_id = (Integer) obj[3]; + address = (Long) obj[4]; } public final byte[] insts; public final int comp_level; public final int compile_id; + public final long address; @Override public String toString() { @@ -51,6 +53,7 @@ public class NMethod extends CodeBlob { + ", insts=" + insts + ", comp_level=" + comp_level + ", compile_id=" + compile_id + + ", address=" + address + '}'; } } -- GitLab