8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett
This commit is contained in:
parent
f7ea8ac7b8
commit
4308ec2ec8
@ -5,3 +5,5 @@ nbproject/private/
|
|||||||
^.hgtip
|
^.hgtip
|
||||||
^.bridge2
|
^.bridge2
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
.metadata/
|
||||||
|
.recommenders/
|
||||||
|
@ -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_SETUP := GENERATE_JDKBYTECODE_NOWARNINGS
|
||||||
jdk.xml.bind_CLEAN := .properties
|
jdk.xml.bind_CLEAN := .properties
|
||||||
jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java
|
jdk.xml.bind_COPY := .xsd JAXBContextFactory.java ZeroOneBooleanAdapter.java
|
||||||
@ -479,6 +491,7 @@ ifneq ($(OPENJDK_TARGET_OS), $(OPENJDK_TARGET_OS_TYPE))
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
SHARE_SRC_DIRS += \
|
SHARE_SRC_DIRS += \
|
||||||
|
$(HOTSPOT_TOPDIR)/src/$1/share/classes \
|
||||||
$(JDK_TOPDIR)/src/$1/share/classes \
|
$(JDK_TOPDIR)/src/$1/share/classes \
|
||||||
$(LANGTOOLS_TOPDIR)/src/$1/share/classes \
|
$(LANGTOOLS_TOPDIR)/src/$1/share/classes \
|
||||||
$(CORBA_TOPDIR)/src/$1/share/classes \
|
$(CORBA_TOPDIR)/src/$1/share/classes \
|
||||||
@ -531,7 +544,7 @@ define SetupModuleCompilation
|
|||||||
|
|
||||||
$$(eval $$(call SetupJavaCompilation,$1, \
|
$$(eval $$(call SetupJavaCompilation,$1, \
|
||||||
SETUP := $$(if $$($1_SETUP), $$($1_SETUP), GENERATE_JDKBYTECODE), \
|
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),\
|
INCLUDES := $(JDK_USER_DEFINED_FILTER),\
|
||||||
BIN := $$(if $$($1_BIN), $$($1_BIN), $(JDK_OUTPUTDIR)/modules/$1), \
|
BIN := $$(if $$($1_BIN), $$($1_BIN), $(JDK_OUTPUTDIR)/modules/$1), \
|
||||||
HEADERS := $(SUPPORT_OUTPUTDIR)/headers/$1, \
|
HEADERS := $(SUPPORT_OUTPUTDIR)/headers/$1, \
|
||||||
|
@ -39,7 +39,8 @@ $(eval $(call IncludeCustomExtension, , Images-pre.gmk))
|
|||||||
|
|
||||||
MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \
|
MAIN_MODULES += java.se java.smartcardio jdk.httpserver jdk.sctp \
|
||||||
jdk.security.auth jdk.security.jgss jdk.pack200 jdk.xml.dom \
|
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
|
# providers
|
||||||
PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \
|
PROVIDER_MODULES += jdk.charsets jdk.crypto.ec jdk.crypto.pkcs11 jdk.jvmstat jdk.localedata \
|
||||||
|
@ -107,6 +107,7 @@ $(eval $(call DeclareRecipesForPhase, GENSRC, \
|
|||||||
JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS))
|
JDK_GENSRC_TARGETS := $(filter %-gensrc-jdk, $(GENSRC_TARGETS))
|
||||||
LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS))
|
LANGTOOLS_GENSRC_TARGETS := $(filter %-gensrc-langtools, $(GENSRC_TARGETS))
|
||||||
CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS))
|
CORBA_GENSRC_TARGETS := $(filter %-gensrc-corba, $(GENSRC_TARGETS))
|
||||||
|
HOTSPOT_GENSRC_TARGETS := $(filter %-gensrc-hotspot, $(GENSRC_TARGETS))
|
||||||
|
|
||||||
ALL_TARGETS += $(GENSRC_TARGETS)
|
ALL_TARGETS += $(GENSRC_TARGETS)
|
||||||
|
|
||||||
@ -128,7 +129,8 @@ $(eval $(call DeclareRecipesForPhase, COPY, \
|
|||||||
FILE_PREFIX := Copy, \
|
FILE_PREFIX := Copy, \
|
||||||
MAKE_SUBDIR := copy, \
|
MAKE_SUBDIR := copy, \
|
||||||
CHECK_MODULES := $(ALL_MODULES), \
|
CHECK_MODULES := $(ALL_MODULES), \
|
||||||
USE_WRAPPER := true))
|
USE_WRAPPER := true, \
|
||||||
|
MULTIPLE_MAKEFILES := true))
|
||||||
|
|
||||||
ALL_TARGETS += $(COPY_TARGETS)
|
ALL_TARGETS += $(COPY_TARGETS)
|
||||||
|
|
||||||
@ -352,6 +354,8 @@ else
|
|||||||
|
|
||||||
$(CORBA_GENSRC_TARGETS): interim-langtools
|
$(CORBA_GENSRC_TARGETS): interim-langtools
|
||||||
|
|
||||||
|
$(HOTSPOT_GENSRC_TARGETS): interim-langtools
|
||||||
|
|
||||||
$(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
|
$(JDK_GENSRC_TARGETS): interim-langtools buildtools-jdk
|
||||||
|
|
||||||
$(GENDATA_TARGETS): interim-langtools buildtools-jdk
|
$(GENDATA_TARGETS): interim-langtools buildtools-jdk
|
||||||
@ -415,6 +419,9 @@ else
|
|||||||
# Explicitly add dependencies for special targets
|
# Explicitly add dependencies for special targets
|
||||||
java.base-java: unpack-sec
|
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
|
jdk.jdeps-gendata: java rmic
|
||||||
|
|
||||||
zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
|
zip-security: java.base-java java.security.jgss-java java.security.jgss-libs \
|
||||||
|
@ -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
|
MAKE_MAKEDIR_LIST := make
|
||||||
|
|
||||||
# Helper macro for DeclareRecipesForPhase
|
# Helper macro for DeclareRecipesForPhase
|
||||||
@ -179,7 +180,7 @@ endef
|
|||||||
# FILE_PREFIX : File prefix for this build phase
|
# FILE_PREFIX : File prefix for this build phase
|
||||||
# USE_WRAPPER : Set to true to use ModuleWrapper.gmk
|
# USE_WRAPPER : Set to true to use ModuleWrapper.gmk
|
||||||
# CHECK_MODULES : List of modules to try
|
# 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
|
# phase in multiple repos
|
||||||
# Exported variables:
|
# Exported variables:
|
||||||
# $1_MODULES : All modules that had rules generated
|
# $1_MODULES : All modules that had rules generated
|
||||||
|
@ -33,6 +33,7 @@ include SetupJavaCompilers.gmk
|
|||||||
# Module list macros
|
# Module list macros
|
||||||
|
|
||||||
ALL_TOP_SRC_DIRS := \
|
ALL_TOP_SRC_DIRS := \
|
||||||
|
$(HOTSPOT_TOPDIR)/src \
|
||||||
$(JDK_TOPDIR)/src \
|
$(JDK_TOPDIR)/src \
|
||||||
$(LANGTOOLS_TOPDIR)/src \
|
$(LANGTOOLS_TOPDIR)/src \
|
||||||
$(CORBA_TOPDIR)/src \
|
$(CORBA_TOPDIR)/src \
|
||||||
|
14
modules.xml
14
modules.xml
@ -237,6 +237,7 @@
|
|||||||
<to>java.instrument</to>
|
<to>java.instrument</to>
|
||||||
<to>jdk.jfr</to>
|
<to>jdk.jfr</to>
|
||||||
<to>jdk.scripting.nashorn</to>
|
<to>jdk.scripting.nashorn</to>
|
||||||
|
<to>jdk.vm.ci</to>
|
||||||
</export>
|
</export>
|
||||||
<export>
|
<export>
|
||||||
<name>jdk.internal.org.objectweb.asm.commons</name>
|
<name>jdk.internal.org.objectweb.asm.commons</name>
|
||||||
@ -290,6 +291,7 @@
|
|||||||
<to>jdk.security.auth</to>
|
<to>jdk.security.auth</to>
|
||||||
<to>jdk.security.jgss</to>
|
<to>jdk.security.jgss</to>
|
||||||
<to>jdk.snmp</to>
|
<to>jdk.snmp</to>
|
||||||
|
<to>jdk.vm.ci</to>
|
||||||
<to>java.instrument</to>
|
<to>java.instrument</to>
|
||||||
</export>
|
</export>
|
||||||
<export>
|
<export>
|
||||||
@ -1871,6 +1873,18 @@
|
|||||||
<name>com.sun.security.jgss</name>
|
<name>com.sun.security.jgss</name>
|
||||||
</export>
|
</export>
|
||||||
</module>
|
</module>
|
||||||
|
<module>
|
||||||
|
<name>jdk.vm.ci</name>
|
||||||
|
<depend>java.base</depend>
|
||||||
|
<export>
|
||||||
|
<name>jdk.vm.ci.hotspot</name>
|
||||||
|
<to>jdk.jfr</to>
|
||||||
|
</export>
|
||||||
|
<export>
|
||||||
|
<name>jdk.vm.ci.hotspot.events</name>
|
||||||
|
<to>jdk.jfr</to>
|
||||||
|
</export>
|
||||||
|
</module>
|
||||||
<module>
|
<module>
|
||||||
<name>jdk.xml.bind</name>
|
<name>jdk.xml.bind</name>
|
||||||
<depend>java.activation</depend>
|
<depend>java.activation</depend>
|
||||||
|
@ -112,6 +112,12 @@ public class WhiteBox {
|
|||||||
|
|
||||||
public native void forceSafepoint();
|
public native void forceSafepoint();
|
||||||
|
|
||||||
|
private native long getConstantPool0(Class<?> aClass);
|
||||||
|
public long getConstantPool(Class<?> aClass) {
|
||||||
|
Objects.requireNonNull(aClass);
|
||||||
|
return getConstantPool0(aClass);
|
||||||
|
}
|
||||||
|
|
||||||
// JVMTI
|
// JVMTI
|
||||||
private native void addToBootstrapClassLoaderSearch0(String segment);
|
private native void addToBootstrapClassLoaderSearch0(String segment);
|
||||||
public void addToBootstrapClassLoaderSearch(String segment){
|
public void addToBootstrapClassLoaderSearch(String segment){
|
||||||
@ -289,6 +295,11 @@ public class WhiteBox {
|
|||||||
public native void forceNMethodSweep();
|
public native void forceNMethodSweep();
|
||||||
public native Object[] getCodeHeapEntries(int type);
|
public native Object[] getCodeHeapEntries(int type);
|
||||||
public native int getCompilationActivityMode();
|
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);
|
public native Object[] getCodeBlob(long addr);
|
||||||
|
|
||||||
// Intered strings
|
// Intered strings
|
||||||
|
@ -35,14 +35,16 @@ public class NMethod extends CodeBlob {
|
|||||||
}
|
}
|
||||||
private NMethod(Object[] obj) {
|
private NMethod(Object[] obj) {
|
||||||
super((Object[])obj[0]);
|
super((Object[])obj[0]);
|
||||||
assert obj.length == 4;
|
assert obj.length == 5;
|
||||||
comp_level = (Integer) obj[1];
|
comp_level = (Integer) obj[1];
|
||||||
insts = (byte[]) obj[2];
|
insts = (byte[]) obj[2];
|
||||||
compile_id = (Integer) obj[3];
|
compile_id = (Integer) obj[3];
|
||||||
|
address = (Long) obj[4];
|
||||||
}
|
}
|
||||||
public final byte[] insts;
|
public final byte[] insts;
|
||||||
public final int comp_level;
|
public final int comp_level;
|
||||||
public final int compile_id;
|
public final int compile_id;
|
||||||
|
public final long address;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@ -51,6 +53,7 @@ public class NMethod extends CodeBlob {
|
|||||||
+ ", insts=" + insts
|
+ ", insts=" + insts
|
||||||
+ ", comp_level=" + comp_level
|
+ ", comp_level=" + comp_level
|
||||||
+ ", compile_id=" + compile_id
|
+ ", compile_id=" + compile_id
|
||||||
|
+ ", address=" + address
|
||||||
+ '}';
|
+ '}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user