< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCICompilerConfig.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2015, 2015, 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. --- 1,7 ---- /* ! * Copyright (c) 2015, 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.
*** 20,79 **** * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.vm.ci.hotspot; ! import jdk.vm.ci.code.*; ! import jdk.vm.ci.common.*; ! import jdk.vm.ci.compiler.*; ! import jdk.vm.ci.compiler.Compiler; ! import jdk.vm.ci.meta.*; ! import jdk.vm.ci.runtime.*; ! import jdk.vm.ci.service.*; final class HotSpotJVMCICompilerConfig { ! private static class DummyCompilerFactory implements CompilerFactory, Compiler { ! public void compileMethod(ResolvedJavaMethod method, int entryBCI, long jvmciEnv, int id) { throw new JVMCIError("no JVMCI compiler selected"); } public String getCompilerName() { return "<none>"; } ! public Architecture initializeArchitecture(Architecture arch) { ! return arch; ! } ! ! public Compiler createCompiler(JVMCIRuntime runtime) { return this; } } ! private static CompilerFactory compilerFactory; /** * Selects the system compiler. * * Called from VM. This method has an object return type to allow it to be called with a VM * utility function used to call other static initialization methods. */ static Boolean selectCompiler(String compilerName) { assert compilerFactory == null; ! for (CompilerFactory factory : Services.load(CompilerFactory.class)) { if (factory.getCompilerName().equals(compilerName)) { compilerFactory = factory; return Boolean.TRUE; } } throw new JVMCIError("JVMCI compiler '%s' not found", compilerName); } ! static CompilerFactory getCompilerFactory() { if (compilerFactory == null) { compilerFactory = new DummyCompilerFactory(); } return compilerFactory; } --- 20,74 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.vm.ci.hotspot; ! import jdk.vm.ci.code.CompilationRequest; ! import jdk.vm.ci.common.JVMCIError; ! import jdk.vm.ci.runtime.JVMCICompiler; ! import jdk.vm.ci.runtime.JVMCICompilerFactory; ! import jdk.vm.ci.runtime.JVMCIRuntime; ! import jdk.vm.ci.service.Services; final class HotSpotJVMCICompilerConfig { ! private static class DummyCompilerFactory implements JVMCICompilerFactory, JVMCICompiler { ! public void compileMethod(CompilationRequest request) { throw new JVMCIError("no JVMCI compiler selected"); } public String getCompilerName() { return "<none>"; } ! public JVMCICompiler createCompiler(JVMCIRuntime runtime) { return this; } } ! private static JVMCICompilerFactory compilerFactory; /** * Selects the system compiler. * * Called from VM. This method has an object return type to allow it to be called with a VM * utility function used to call other static initialization methods. */ static Boolean selectCompiler(String compilerName) { assert compilerFactory == null; ! for (JVMCICompilerFactory factory : Services.load(JVMCICompilerFactory.class)) { if (factory.getCompilerName().equals(compilerName)) { compilerFactory = factory; return Boolean.TRUE; } } throw new JVMCIError("JVMCI compiler '%s' not found", compilerName); } ! static JVMCICompilerFactory getCompilerFactory() { if (compilerFactory == null) { compilerFactory = new DummyCompilerFactory(); } return compilerFactory; }
< prev index next >