< prev index next >

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

Print this page

        

*** 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. --- 1,7 ---- /* ! * Copyright (c) 2015, 2018, 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,38 **** * 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.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.JVMCIPermission; import jdk.vm.ci.services.JVMCIServiceLocator; - import jdk.vm.ci.services.internal.ReflectionAccessJDK; final class HotSpotJVMCICompilerConfig { /** * This factory allows JVMCI initialization to succeed but raises an error if the VM asks JVMCI --- 20,39 ---- * or visit www.oracle.com if you need additional information or have any * questions. */ package jdk.vm.ci.hotspot; + import java.util.Set; + import jdk.vm.ci.code.CompilationRequest; 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.JVMCIPermission; import jdk.vm.ci.services.JVMCIServiceLocator; final class HotSpotJVMCICompilerConfig { /** * This factory allows JVMCI initialization to succeed but raises an error if the VM asks JVMCI
*** 88,98 **** } } else { // Auto select a single available compiler for (JVMCICompilerFactory f : JVMCIServiceLocator.getProviders(JVMCICompilerFactory.class)) { if (factory == null) { ! ReflectionAccessJDK.openJVMCITo(f.getClass()); factory = f; } else { // Multiple factories seen - cancel auto selection factory = null; break; --- 89,99 ---- } } else { // Auto select a single available compiler for (JVMCICompilerFactory f : JVMCIServiceLocator.getProviders(JVMCICompilerFactory.class)) { if (factory == null) { ! openJVMCITo(f.getClass().getModule()); factory = f; } else { // Multiple factories seen - cancel auto selection factory = null; break;
*** 105,110 **** --- 106,127 ---- factory.onSelection(); compilerFactory = factory; } return compilerFactory; } + + /** + * Opens all JVMCI packages to {@code otherModule}. + */ + private static void openJVMCITo(Module otherModule) { + Module jvmci = HotSpotJVMCICompilerConfig.class.getModule(); + if (jvmci != otherModule) { + Set<String> packages = jvmci.getPackages(); + for (String pkg : packages) { + boolean opened = jvmci.isOpen(pkg, otherModule); + if (!opened) { + jvmci.addOpens(pkg, otherModule); + } + } + } + } }
< prev index next >