Mercurial > hg > graal-compiler
changeset 12578:7315fb9b0679
separated registration of (host) intrinsics from initialization of lowerers
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 25 Oct 2013 00:21:34 +0200 |
parents | 32d08d88c881 |
children | 1d369998229a |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java |
diffstat | 1 files changed, 20 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Fri Oct 25 00:12:54 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Fri Oct 25 00:21:34 2013 +0200 @@ -192,38 +192,33 @@ @Override public void run() { - List<LoweringProvider> initializedLowerers = new ArrayList<>(); - - for (Map.Entry<?, HotSpotBackend> e : runtime.getBackends().entrySet()) { - HotSpotBackend backend = e.getValue(); - HotSpotProviders providers = backend.getProviders(); - - HotSpotLoweringProvider lowerer = (HotSpotLoweringProvider) providers.getLowerer(); - if (!initializedLowerers.contains(lowerer)) { - initializedLowerers.add(lowerer); - initializeLowerer(providers, lowerer); - } + HotSpotMetaAccessProvider hostMetaAccess = hostProviders.getMetaAccess(); + Replacements hostReplacements = hostProviders.getReplacements(); + LoweringProvider hostLowerer = hostProviders.getLowerer(); + ServiceLoader<ReplacementsProvider> sl = ServiceLoader.loadInstalled(ReplacementsProvider.class); + TargetDescription hostTarget = hostProviders.getCodeCache().getTarget(); + for (ReplacementsProvider replacementsProvider : sl) { + replacementsProvider.registerReplacements(hostMetaAccess, hostLowerer, hostReplacements, hostTarget); } - } - - private void initializeLowerer(HotSpotProviders providers, HotSpotLoweringProvider lowerer) { - final Replacements replacements = providers.getReplacements(); - ServiceLoader<ReplacementsProvider> sl = ServiceLoader.loadInstalled(ReplacementsProvider.class); - TargetDescription target = providers.getCodeCache().getTarget(); - for (ReplacementsProvider replacementsProvider : sl) { - replacementsProvider.registerReplacements(providers.getMetaAccess(), lowerer, replacements, target); - } - lowerer.initialize(providers, config); if (BootstrapReplacements.getValue()) { - for (ResolvedJavaMethod method : replacements.getAllReplacements()) { - replacements.getMacroSubstitution(method); - replacements.getMethodSubstitution(method); - replacements.getSnippet(method); + for (ResolvedJavaMethod method : hostReplacements.getAllReplacements()) { + hostReplacements.getMacroSubstitution(method); + hostReplacements.getMethodSubstitution(method); } } } }); + } + List<LoweringProvider> initializedLowerers = new ArrayList<>(); + for (Map.Entry<?, HotSpotBackend> 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); + } } // Create compilation queue.