Mercurial > hg > graal-jvmci-8
diff jvmci/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java @ 23679:b5557b757040
fix HotSpotVMConfig startup performance (JDK-8159167)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 15 Jun 2016 00:00:41 +0200 |
parents | 9ed5b586018b |
children |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java Fri Jun 10 14:04:40 2016 +0200 +++ b/jvmci/jdk.vm.ci.hotspot.aarch64/src/jdk/vm/ci/hotspot/aarch64/AArch64HotSpotJVMCIBackendFactory.java Wed Jun 15 00:00:41 2016 +0200 @@ -38,24 +38,23 @@ import jdk.vm.ci.hotspot.HotSpotJVMCIRuntimeProvider; import jdk.vm.ci.hotspot.HotSpotMetaAccessProvider; import jdk.vm.ci.hotspot.HotSpotStackIntrospection; -import jdk.vm.ci.hotspot.HotSpotVMConfig; import jdk.vm.ci.meta.ConstantReflectionProvider; import jdk.vm.ci.runtime.JVMCIBackend; public class AArch64HotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFactory { - protected EnumSet<AArch64.CPUFeature> computeFeatures(@SuppressWarnings("unused") HotSpotVMConfig config) { + protected EnumSet<AArch64.CPUFeature> computeFeatures(@SuppressWarnings("unused") AArch64HotSpotVMConfig config) { // Configure the feature set using the HotSpot flag settings. EnumSet<AArch64.CPUFeature> features = EnumSet.noneOf(AArch64.CPUFeature.class); return features; } - protected EnumSet<AArch64.Flag> computeFlags(@SuppressWarnings("unused") HotSpotVMConfig config) { + protected EnumSet<AArch64.Flag> computeFlags(@SuppressWarnings("unused") AArch64HotSpotVMConfig config) { EnumSet<AArch64.Flag> flags = EnumSet.noneOf(AArch64.Flag.class); return flags; } - protected TargetDescription createTarget(HotSpotVMConfig config) { + protected TargetDescription createTarget(AArch64HotSpotVMConfig config) { final int stackFrameAlignment = 16; final int implicitNullCheckLimit = 4096; final boolean inlineObjects = true; @@ -67,8 +66,8 @@ return new HotSpotConstantReflectionProvider(runtime); } - protected RegisterConfig createRegisterConfig(HotSpotJVMCIRuntimeProvider runtime, TargetDescription target) { - return new AArch64HotSpotRegisterConfig(target, runtime.getConfig()); + protected RegisterConfig createRegisterConfig(AArch64HotSpotVMConfig config, TargetDescription target) { + return new AArch64HotSpotRegisterConfig(target, config.useCompressedOops); } protected HotSpotCodeCacheProvider createCodeCache(HotSpotJVMCIRuntimeProvider runtime, TargetDescription target, RegisterConfig regConfig) { @@ -93,7 +92,8 @@ public JVMCIBackend createJVMCIBackend(HotSpotJVMCIRuntimeProvider runtime, JVMCIBackend host) { assert host == null; - TargetDescription target = createTarget(runtime.getConfig()); + AArch64HotSpotVMConfig config = new AArch64HotSpotVMConfig(runtime.getConfigStore()); + TargetDescription target = createTarget(config); RegisterConfig regConfig; HotSpotCodeCacheProvider codeCache; @@ -105,7 +105,7 @@ metaAccess = createMetaAccess(runtime); } try (InitTimer rt = timer("create RegisterConfig")) { - regConfig = createRegisterConfig(runtime, target); + regConfig = createRegisterConfig(config, target); } try (InitTimer rt = timer("create CodeCache provider")) { codeCache = createCodeCache(runtime, target, regConfig);