< 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 >