# HG changeset patch # User Doug Simon # Date 1382653860 -7200 # Node ID 1d369998229a811691d6497d4b025a9c026acda0 # Parent 7315fb9b0679e155c0cfc506b74a510735b24322 restricted initialization of LoweringProvider during VM startup to only be for the LoweringProvider of the host backend; removed unnecessary HotSpotLoweringProvider interface diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java Fri Oct 25 00:31:00 2013 +0200 @@ -57,7 +57,7 @@ HotSpotConstantReflectionProvider constantReflection = createConstantReflection(runtime); Value[] nativeABICallerSaveRegisters = createNativeABICallerSaveRegisters(runtime.getConfig(), codeCache.getRegisterConfig()); HotSpotForeignCallsProvider foreignCalls = createForeignCalls(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); - HotSpotLoweringProvider lowerer = createLowerer(runtime, metaAccess, foreignCalls); + LoweringProvider lowerer = createLowerer(runtime, metaAccess, foreignCalls); // Replacements cannot have speculative optimizations since they have // to be valid for the entire run of the VM. Assumptions assumptions = new Assumptions(false); diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLoweringProvider.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.hsail/src/com/oracle/graal/hotspot/hsail/HSAILHotSpotLoweringProvider.java Fri Oct 25 00:31:00 2013 +0200 @@ -22,16 +22,13 @@ */ package com.oracle.graal.hotspot.hsail; -import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; -import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; -public class HSAILHotSpotLoweringProvider implements HotSpotLoweringProvider { +public class HSAILHotSpotLoweringProvider implements LoweringProvider { private LoweringProvider host; @@ -51,11 +48,4 @@ public ValueNode reconstructArrayIndex(LocationNode location) { throw GraalInternalError.unimplemented(); } - - public void initialize(HotSpotProviders providers, HotSpotVMConfig config) { - } - - public int getScalingFactor(Kind elementKind) { - throw GraalInternalError.unimplemented(); - } } diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotBackendFactory.java Fri Oct 25 00:31:00 2013 +0200 @@ -40,7 +40,7 @@ PTXHotSpotCodeCacheProvider codeCache = new PTXHotSpotCodeCacheProvider(runtime, createTarget()); ConstantReflectionProvider constantReflection = host.getConstantReflection(); HotSpotForeignCallsProvider foreignCalls = new PTXHotSpotForeignCallsProvider(); - HotSpotLoweringProvider lowerer = new PTXHotSpotLoweringProvider(host.getLowerer()); + LoweringProvider lowerer = new PTXHotSpotLoweringProvider(host.getLowerer()); Replacements replacements = host.getReplacements(); HotSpotDisassemblerProvider disassembler = host.getDisassembler(); HotSpotSuitesProvider suites = host.getSuites(); diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotLoweringProvider.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.ptx/src/com/oracle/graal/hotspot/ptx/PTXHotSpotLoweringProvider.java Fri Oct 25 00:31:00 2013 +0200 @@ -22,16 +22,13 @@ */ package com.oracle.graal.hotspot.ptx; -import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; -import com.oracle.graal.hotspot.*; -import com.oracle.graal.hotspot.meta.*; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.calc.*; import com.oracle.graal.nodes.extended.*; import com.oracle.graal.nodes.spi.*; -public class PTXHotSpotLoweringProvider implements HotSpotLoweringProvider { +public class PTXHotSpotLoweringProvider implements LoweringProvider { private final LoweringProvider host; @@ -56,11 +53,4 @@ public ValueNode reconstructArrayIndex(LocationNode location) { throw GraalInternalError.unimplemented(); } - - public void initialize(HotSpotProviders providers, HotSpotVMConfig config) { - } - - public int getScalingFactor(Kind elementKind) { - throw GraalInternalError.unimplemented(); - } } diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java --- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Fri Oct 25 00:31:00 2013 +0200 @@ -28,6 +28,7 @@ import com.oracle.graal.graph.*; import com.oracle.graal.hotspot.*; import com.oracle.graal.hotspot.meta.*; +import com.oracle.graal.nodes.spi.*; import com.oracle.graal.phases.util.*; import com.oracle.graal.sparc.*; @@ -54,7 +55,7 @@ HotSpotConstantReflectionProvider constantReflection = new HotSpotConstantReflectionProvider(runtime); Value[] nativeABICallerSaveRegisters = createNativeABICallerSaveRegisters(runtime.getConfig(), codeCache.getRegisterConfig()); HotSpotForeignCallsProvider foreignCalls = new SPARCHotSpotForeignCallsProvider(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); - HotSpotLoweringProvider lowerer = new SPARCHotSpotLoweringProvider(runtime, metaAccess, foreignCalls); + LoweringProvider lowerer = new SPARCHotSpotLoweringProvider(runtime, metaAccess, foreignCalls); // Replacements cannot have speculative optimizations since they have // to be valid for the entire run of the VM. Assumptions assumptions = new Assumptions(false); diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Fri Oct 25 00:31:00 2013 +0200 @@ -183,6 +183,8 @@ final HotSpotProviders hostProviders = runtime.getHostProviders(); HotSpotHostForeignCallsProvider hostForeignCalls = (HotSpotHostForeignCallsProvider) hostProviders.getForeignCalls(); assert VerifyOptionsPhase.checkOptions(hostProviders.getMetaAccess(), hostForeignCalls); + + // Initialize host ForeignCallsProvider hostForeignCalls.initialize(hostProviders, config); // Install intrinsics. @@ -209,17 +211,10 @@ } }); } - List initializedLowerers = new ArrayList<>(); - for (Map.Entry e : runtime.getBackends().entrySet()) { - HotSpotBackend backend = e.getValue(); - HotSpotProviders providers = backend.getProviders(); - HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) providers.getLowerer(); - if (!initializedLowerers.contains(lowerer)) { - initializedLowerers.add(lowerer); - lowerer.initialize(providers, config); - } - } + // Initialize host LoweringProvider + HotSpotHostLoweringProvider hostLowerer = (HotSpotHostLoweringProvider) hostProviders.getLowerer(); + hostLowerer.initialize(hostProviders, config); // Create compilation queue. compileQueue = new ThreadPoolExecutor(Threads.getValue(), Threads.getValue(), 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue(), CompilerThread.FACTORY); diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostLoweringProvider.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostLoweringProvider.java Fri Oct 25 00:31:00 2013 +0200 @@ -57,7 +57,7 @@ /** * HotSpot implementation of {@link LoweringProvider}. */ -public class HotSpotHostLoweringProvider implements HotSpotLoweringProvider { +public class HotSpotHostLoweringProvider implements LoweringProvider { protected final HotSpotGraalRuntime runtime; protected final MetaAccessProvider metaAccess; diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoweringProvider.java Fri Oct 25 00:21:34 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.hotspot.meta; - -import com.oracle.graal.api.meta.*; -import com.oracle.graal.hotspot.*; -import com.oracle.graal.nodes.spi.*; - -/** - * HotSpot extension of {@link LoweringProvider}. - */ -public interface HotSpotLoweringProvider extends LoweringProvider { - - void initialize(HotSpotProviders providers, HotSpotVMConfig config); - - int getScalingFactor(Kind elementKind); -} diff -r 7315fb9b0679 -r 1d369998229a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Fri Oct 25 00:21:34 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Fri Oct 25 00:31:00 2013 +0200 @@ -332,7 +332,7 @@ Kind elementKind = elementType.getKind(); ConstantNode hub = ConstantNode.forConstant(arrayType.klass(), providers.getMetaAccess(), graph); final int headerSize = HotSpotGraalRuntime.getArrayBaseOffset(elementKind); - HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) providers.getLowerer(); + HotSpotHostLoweringProvider lowerer = (HotSpotHostLoweringProvider) providers.getLowerer(); int log2ElementSize = CodeUtil.log2(lowerer.getScalingFactor(elementKind)); Arguments args = new Arguments(allocateArray, graph.getGuardsStage());