< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/HotSpotGraalCompilerFactory.java

Print this page

        

*** 20,57 **** * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.hotspot; - import static org.graalvm.compiler.core.common.util.Util.Java8OrEarlier; - import static org.graalvm.compiler.options.OptionValue.PROFILE_OPTIONVALUE_PROPERTY_NAME; import static jdk.vm.ci.common.InitTimer.timer; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintStream; - import java.lang.reflect.Field; import java.util.HashMap; import java.util.Map; import java.util.Properties; import java.util.ServiceLoader; - import org.graalvm.compiler.debug.GraalError; import org.graalvm.compiler.debug.MethodFilter; import org.graalvm.compiler.options.Option; import org.graalvm.compiler.options.OptionDescriptors; import org.graalvm.compiler.options.OptionType; import org.graalvm.compiler.options.OptionValue; import org.graalvm.compiler.options.OptionsParser; import org.graalvm.compiler.phases.tiers.CompilerConfiguration; import jdk.vm.ci.common.InitTimer; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime; import jdk.vm.ci.hotspot.HotSpotSignature; - import jdk.vm.ci.hotspot.HotSpotJVMCICompilerFactory; import jdk.vm.ci.runtime.JVMCIRuntime; public final class HotSpotGraalCompilerFactory extends HotSpotJVMCICompilerFactory { /** * The name of the system property specifying a file containing extra Graal option settings. --- 20,56 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.hotspot; import static jdk.vm.ci.common.InitTimer.timer; + import static org.graalvm.compiler.options.OptionValue.PROFILE_OPTIONVALUE_PROPERTY_NAME; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintStream; import java.util.HashMap; import java.util.Map; + import java.util.Map.Entry; import java.util.Properties; import java.util.ServiceLoader; import org.graalvm.compiler.debug.MethodFilter; import org.graalvm.compiler.options.Option; import org.graalvm.compiler.options.OptionDescriptors; import org.graalvm.compiler.options.OptionType; import org.graalvm.compiler.options.OptionValue; import org.graalvm.compiler.options.OptionsParser; import org.graalvm.compiler.phases.tiers.CompilerConfiguration; import jdk.vm.ci.common.InitTimer; + import jdk.vm.ci.hotspot.HotSpotJVMCICompilerFactory; import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime; import jdk.vm.ci.hotspot.HotSpotSignature; import jdk.vm.ci.runtime.JVMCIRuntime; + import jdk.vm.ci.services.Services; public final class HotSpotGraalCompilerFactory extends HotSpotJVMCICompilerFactory { /** * The name of the system property specifying a file containing extra Graal option settings.
*** 133,144 **** @SuppressWarnings("try") private static synchronized void initializeOptions() { if (allOptionsSettings == null) { try (InitTimer t = timer("InitializeOptions")) { ServiceLoader<OptionDescriptors> loader = ServiceLoader.load(OptionDescriptors.class, OptionDescriptors.class.getClassLoader()); ! Properties savedProps = getSavedProperties(Java8OrEarlier); ! String optionsFile = savedProps.getProperty(GRAAL_OPTIONS_FILE_PROPERTY_NAME); if (optionsFile != null) { File graalOptions = new File(optionsFile); if (graalOptions.exists()) { try (FileReader fr = new FileReader(graalOptions)) { --- 132,143 ---- @SuppressWarnings("try") private static synchronized void initializeOptions() { if (allOptionsSettings == null) { try (InitTimer t = timer("InitializeOptions")) { ServiceLoader<OptionDescriptors> loader = ServiceLoader.load(OptionDescriptors.class, OptionDescriptors.class.getClassLoader()); ! Map<String, String> savedProps = Services.getSavedProperties(); ! String optionsFile = savedProps.get(GRAAL_OPTIONS_FILE_PROPERTY_NAME); if (optionsFile != null) { File graalOptions = new File(optionsFile); if (graalOptions.exists()) { try (FileReader fr = new FileReader(graalOptions)) {
*** 163,181 **** } } } Map<String, String> optionSettings = new HashMap<>(); ! for (Map.Entry<Object, Object> e : savedProps.entrySet()) { ! String name = (String) e.getKey(); if (name.startsWith(GRAAL_OPTION_PROPERTY_PREFIX)) { if (name.equals("graal.PrintFlags") || name.equals("graal.ShowFlags")) { System.err.println("The " + name + " option has been removed and will be ignored. Use -XX:+JVMCIPrintProperties instead."); } else if (name.equals(GRAAL_OPTIONS_FILE_PROPERTY_NAME) || name.equals(GRAAL_VERSION_PROPERTY_NAME) || name.equals(PROFILE_OPTIONVALUE_PROPERTY_NAME)) { // Ignore well known properties that do not denote an option } else { ! String value = (String) e.getValue(); optionSettings.put(name.substring(GRAAL_OPTION_PROPERTY_PREFIX.length()), value); } } } --- 162,180 ---- } } } Map<String, String> optionSettings = new HashMap<>(); ! for (Entry<String, String> e : savedProps.entrySet()) { ! String name = e.getKey(); if (name.startsWith(GRAAL_OPTION_PROPERTY_PREFIX)) { if (name.equals("graal.PrintFlags") || name.equals("graal.ShowFlags")) { System.err.println("The " + name + " option has been removed and will be ignored. Use -XX:+JVMCIPrintProperties instead."); } else if (name.equals(GRAAL_OPTIONS_FILE_PROPERTY_NAME) || name.equals(GRAAL_VERSION_PROPERTY_NAME) || name.equals(PROFILE_OPTIONVALUE_PROPERTY_NAME)) { // Ignore well known properties that do not denote an option } else { ! String value = e.getValue(); optionSettings.put(name.substring(GRAAL_OPTION_PROPERTY_PREFIX.length()), value); } } }
*** 204,225 **** } } } } - private static Properties getSavedProperties(boolean jdk8OrEarlier) { - try { - String vmClassName = jdk8OrEarlier ? "sun.misc.VM" : "jdk.internal.misc.VM"; - Class<?> vmClass = Class.forName(vmClassName); - Field savedPropsField = vmClass.getDeclaredField("savedProps"); - savedPropsField.setAccessible(true); - return (Properties) savedPropsField.get(null); - } catch (Exception e) { - throw new GraalError(e); - } - } - @Override public HotSpotGraalCompiler createCompiler(JVMCIRuntime runtime) { HotSpotGraalCompiler compiler = createCompiler(runtime, CompilerConfigurationFactory.selectFactory(null)); // Only the HotSpotGraalRuntime associated with the compiler created via // jdk.vm.ci.runtime.JVMCIRuntime.getCompiler() is registered for receiving --- 203,212 ----
< prev index next >