# HG changeset patch # User Doug Simon # Date 1432593090 -7200 # Node ID a04dfbf81bc449724e6f1f86bcd250c681bc80d1 # Parent abfdac702f14d7d15b7485d292afeedf0a45913b removed dependency from JVMCI class HotSpotProfilingInfo to non-JVMCI class StructuredGraph (JBS:GRAAL-53) diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotCodeCacheProvider.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotConstantPool.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMemoryAccessProviderImpl.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMetaAccessProvider.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMethodData.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMethodData.java Mon May 25 23:44:59 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMethodData.java Tue May 26 00:31:30 2015 +0200 @@ -848,11 +848,11 @@ } } - public void setCompiledGraphSize(int nodeCount) { - unsafe.putInt(metaspaceMethodData + config.methodDataGraalNodeCountOffset, nodeCount); + public void setCompiledIRSize(int size) { + unsafe.putInt(metaspaceMethodData + config.methodDataIRSizeOffset, size); } - public int getCompiledGraphSize() { - return unsafe.getInt(metaspaceMethodData + config.methodDataGraalNodeCountOffset); + public int getCompiledIRSize() { + return unsafe.getInt(metaspaceMethodData + config.methodDataIRSizeOffset); } } diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotMethodHandleAccessProvider.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotProfilingInfo.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotProfilingInfo.java Mon May 25 23:44:59 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotProfilingInfo.java Tue May 26 00:31:30 2015 +0200 @@ -24,7 +24,6 @@ import com.oracle.graal.api.meta.*; import com.oracle.graal.debug.*; -import com.oracle.graal.nodes.*; public final class HotSpotProfilingInfo implements ProfilingInfo, HotSpotProxified { @@ -205,19 +204,33 @@ isMature = true; } + /** + * {@code MethodData::_jvmci_ir_size} (currently) supports at most one JVMCI compiler IR type + * which will be determined by the first JVMCI compiler that calls + * {@link #setCompilerIRSize(Class, int)}. + */ + private static volatile Class supportedCompilerIRType; + @Override public boolean setCompilerIRSize(Class irType, int size) { - if (irType == StructuredGraph.class) { - methodData.setCompiledGraphSize(size); - return true; + if (supportedCompilerIRType == null) { + synchronized (HotSpotProfilingInfo.class) { + if (supportedCompilerIRType == null) { + supportedCompilerIRType = irType; + } + } } - return false; + if (supportedCompilerIRType != irType) { + return false; + } + methodData.setCompiledIRSize(size); + return true; } @Override public int getCompilerIRSize(Class irType) { - if (irType == StructuredGraph.class) { - return methodData.getCompiledGraphSize(); + if (irType == supportedCompilerIRType) { + return methodData.getCompiledIRSize(); } return -1; } diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotResolvedJavaFieldImpl.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotResolvedJavaMethodImpl.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotResolvedObjectTypeImpl.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotResolvedPrimitiveType.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotSignature.java diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotVMConfig.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotVMConfig.java Mon May 25 23:44:59 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotVMConfig.java Tue May 26 00:31:30 2015 +0200 @@ -1216,7 +1216,7 @@ @HotSpotVMField(name = "MethodData::_data_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataDataSize; @HotSpotVMField(name = "MethodData::_data[0]", type = "intptr_t", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopDataOffset; @HotSpotVMField(name = "MethodData::_trap_hist._array[0]", type = "u1", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataOopTrapHistoryOffset; - @HotSpotVMField(name = "MethodData::_graal_node_count", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataGraalNodeCountOffset; + @HotSpotVMField(name = "MethodData::_jvmci_ir_size", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int methodDataIRSizeOffset; @HotSpotVMField(name = "nmethod::_verified_entry_point", type = "address", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodEntryOffset; @HotSpotVMField(name = "nmethod::_comp_level", type = "int", get = HotSpotVMField.Type.OFFSET) @Stable public int nmethodCompLevelOffset; diff -r abfdac702f14 -r a04dfbf81bc4 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/jvmci/HotSpotVMConfigVerifier.java diff -r abfdac702f14 -r a04dfbf81bc4 src/share/vm/graal/vmStructs_graal.hpp --- a/src/share/vm/graal/vmStructs_graal.hpp Mon May 25 23:44:59 2015 +0200 +++ b/src/share/vm/graal/vmStructs_graal.hpp Tue May 26 00:31:30 2015 +0200 @@ -34,7 +34,7 @@ nonstatic_field(ThreadShadow, _pending_deoptimization, int) \ nonstatic_field(ThreadShadow, _pending_failed_speculation, oop) \ nonstatic_field(ThreadShadow, _pending_transfer_to_interpreter, bool) \ - nonstatic_field(MethodData, _graal_node_count, int) \ + nonstatic_field(MethodData, _jvmci_ir_size, int) \ nonstatic_field(GraalEnv, _task, CompileTask*) \ nonstatic_field(GraalEnv, _jvmti_can_hotswap_or_post_breakpoint, bool) \ diff -r abfdac702f14 -r a04dfbf81bc4 src/share/vm/oops/methodData.cpp --- a/src/share/vm/oops/methodData.cpp Mon May 25 23:44:59 2015 +0200 +++ b/src/share/vm/oops/methodData.cpp Tue May 26 00:31:30 2015 +0200 @@ -1237,7 +1237,7 @@ _would_profile = unknown; #ifdef GRAAL - _graal_node_count = 0; + _jvmci_ir_size = 0; #endif #if INCLUDE_RTM_OPT diff -r abfdac702f14 -r a04dfbf81bc4 src/share/vm/oops/methodData.hpp --- a/src/share/vm/oops/methodData.hpp Mon May 25 23:44:59 2015 +0200 +++ b/src/share/vm/oops/methodData.hpp Tue May 26 00:31:30 2015 +0200 @@ -2211,8 +2211,8 @@ WouldProfile _would_profile; #ifdef GRAAL - // Support for HotSpotMethodData.setCompiledGraphSize(int) - int _graal_node_count; + // Support for HotSpotMethodData.setCompiledIRSize(int) + int _jvmci_ir_size; #endif // Size of _data array in bytes. (Excludes header and extra_data fields.)