< 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, 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, 2016, 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.
*** 23,32 ****
--- 23,33 ----
package jdk.vm.ci.hotspot;
import jdk.vm.ci.code.CompilationRequest;
import jdk.vm.ci.code.CompilationRequestResult;
import jdk.vm.ci.common.JVMCIError;
+ import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.Option;
import jdk.vm.ci.runtime.JVMCICompiler;
import jdk.vm.ci.runtime.JVMCICompilerFactory;
import jdk.vm.ci.runtime.JVMCIRuntime;
import jdk.vm.ci.services.Services;
*** 45,76 ****
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;
}
}
--- 46,85 ----
public JVMCICompiler createCompiler(JVMCIRuntime runtime) {
return this;
}
}
! /**
! * Factory of the selected system compiler.
! */
! private static final JVMCICompilerFactory compilerFactory;
/**
! * Selects the system compiler by using the system property {@code jvmci.compiler}.
*/
! static {
! JVMCICompilerFactory factory = null;
! String compilerName = Option.Compiler.getString();
! if (compilerName != null) {
! for (JVMCICompilerFactory f : Services.load(JVMCICompilerFactory.class)) {
! if (f.getCompilerName().equals(compilerName)) {
! factory = f;
}
}
! if (factory == null) {
throw new JVMCIError("JVMCI compiler '%s' not found", compilerName);
}
+ } else {
+ factory = new DummyCompilerFactory();
+ }
+ compilerFactory = factory;
+ }
+ /**
+ * Gets the selected system compiler factory.
+ *
+ * @return the selected system compiler factory
+ */
static JVMCICompilerFactory getCompilerFactory() {
return compilerFactory;
}
}
< prev index next >