< prev index next >
src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java
Print this page
*** 34,44 ****
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.Set;
- import java.util.TreeMap;
import java.util.function.Predicate;
import jdk.internal.misc.VM;
import jdk.internal.misc.Unsafe;
import jdk.vm.ci.code.Architecture;
--- 34,43 ----
*** 238,257 ****
*/
public static JavaKind getHostWordKind() {
return runtime().getHostJVMCIBackend().getCodeCache().getTarget().wordJavaKind;
}
! protected final CompilerToVM compilerToVm;
protected final HotSpotVMConfigStore configStore;
! protected final HotSpotVMConfig config;
private final JVMCIBackend hostBackend;
private final JVMCICompilerFactory compilerFactory;
private final HotSpotJVMCICompilerFactory hsCompilerFactory;
private volatile JVMCICompiler compiler;
! protected final HotSpotJVMCIMetaAccessContext metaAccessContext;
/**
* Stores the result of {@link HotSpotJVMCICompilerFactory#getCompilationLevelAdjustment} so
* that it can be read from the VM.
*/
--- 237,256 ----
*/
public static JavaKind getHostWordKind() {
return runtime().getHostJVMCIBackend().getCodeCache().getTarget().wordJavaKind;
}
! final CompilerToVM compilerToVm;
protected final HotSpotVMConfigStore configStore;
! private final HotSpotVMConfig config;
private final JVMCIBackend hostBackend;
private final JVMCICompilerFactory compilerFactory;
private final HotSpotJVMCICompilerFactory hsCompilerFactory;
private volatile JVMCICompiler compiler;
! final HotSpotJVMCIMetaAccessContext metaAccessContext;
/**
* Stores the result of {@link HotSpotJVMCICompilerFactory#getCompilationLevelAdjustment} so
* that it can be read from the VM.
*/
*** 322,332 ****
compilerFactory.printProperties(out);
System.exit(0);
}
if (Option.PrintConfig.getBoolean()) {
! printConfig(configStore, compilerToVm);
}
}
private JVMCIBackend registerBackend(JVMCIBackend backend) {
Class<? extends Architecture> arch = backend.getCodeCache().getTarget().arch.getClass();
--- 321,331 ----
compilerFactory.printProperties(out);
System.exit(0);
}
if (Option.PrintConfig.getBoolean()) {
! configStore.printConfig();
}
}
private JVMCIBackend registerBackend(JVMCIBackend backend) {
Class<? extends Architecture> arch = backend.getCodeCache().getTarget().arch.getClass();
*** 341,355 ****
public HotSpotVMConfigStore getConfigStore() {
return configStore;
}
! public HotSpotVMConfig getConfig() {
return config;
}
! public CompilerToVM getCompilerToVM() {
return compilerToVm;
}
// Non-volatile since multi-initialization is harmless
private Predicate<ResolvedJavaType> intrinsificationTrustPredicate;
--- 340,354 ----
public HotSpotVMConfigStore getConfigStore() {
return configStore;
}
! HotSpotVMConfig getConfig() {
return config;
}
! CompilerToVM getCompilerToVM() {
return compilerToVm;
}
// Non-volatile since multi-initialization is harmless
private Predicate<ResolvedJavaType> intrinsificationTrustPredicate;
*** 576,620 ****
for (HotSpotVMEventListener vmEventListener : getVmEventListeners()) {
vmEventListener.notifyInstall(hotSpotCodeCacheProvider, installedCode, compiledCode);
}
}
- @SuppressFBWarnings(value = "DM_DEFAULT_ENCODING", justification = "no localization here please!")
- private static void printConfigLine(CompilerToVM vm, String format, Object... args) {
- String line = String.format(format, args);
- byte[] lineBytes = line.getBytes();
- vm.writeDebugOutput(lineBytes, 0, lineBytes.length);
- vm.flushDebugOutput();
- }
-
- private static void printConfig(HotSpotVMConfigStore store, CompilerToVM vm) {
- TreeMap<String, VMField> fields = new TreeMap<>(store.getFields());
- for (VMField field : fields.values()) {
- if (!field.isStatic()) {
- printConfigLine(vm, "[vmconfig:instance field] %s %s {offset=%d[0x%x]}%n", field.type, field.name, field.offset, field.offset);
- } else {
- String value = field.value == null ? "null" : field.value instanceof Boolean ? field.value.toString() : String.format("%d[0x%x]", field.value, field.value);
- printConfigLine(vm, "[vmconfig:static field] %s %s = %s {address=0x%x}%n", field.type, field.name, value, field.address);
- }
- }
- TreeMap<String, VMFlag> flags = new TreeMap<>(store.getFlags());
- for (VMFlag flag : flags.values()) {
- printConfigLine(vm, "[vmconfig:flag] %s %s = %s%n", flag.type, flag.name, flag.value);
- }
- TreeMap<String, Long> addresses = new TreeMap<>(store.getAddresses());
- for (Map.Entry<String, Long> e : addresses.entrySet()) {
- printConfigLine(vm, "[vmconfig:address] %s = %d[0x%x]%n", e.getKey(), e.getValue(), e.getValue());
- }
- TreeMap<String, Long> constants = new TreeMap<>(store.getConstants());
- for (Map.Entry<String, Long> e : constants.entrySet()) {
- printConfigLine(vm, "[vmconfig:constant] %s = %d[0x%x]%n", e.getKey(), e.getValue(), e.getValue());
- }
- for (VMIntrinsicMethod e : store.getIntrinsics()) {
- printConfigLine(vm, "[vmconfig:intrinsic] %d = %s.%s %s%n", e.id, e.declaringClass, e.name, e.descriptor);
- }
- }
-
/**
* Gets an output stream that writes to HotSpot's {@code tty} stream.
*/
public OutputStream getLogStream() {
return new OutputStream() {
--- 575,584 ----
< prev index next >