Mercurial > hg > graal-compiler
changeset 23278:b4b1c160713d
removed NodeIntrinsificationPlugin since MethodsElidedInSnippets feature is no longer used
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 08 Jan 2016 23:33:34 +0100 |
parents | f0e34c710768 |
children | 5e896ce71d22 |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPlugin.java |
diffstat | 3 files changed, 3 insertions(+), 84 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java Fri Jan 08 23:01:02 2016 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java Fri Jan 08 23:33:34 2016 +0100 @@ -76,7 +76,6 @@ import com.oracle.graal.options.StableOptionValue; import com.oracle.graal.replacements.InlineDuringParsingPlugin; import com.oracle.graal.replacements.MethodHandlePlugin; -import com.oracle.graal.replacements.NodeIntrinsificationPlugin; import com.oracle.graal.replacements.NodeIntrinsificationProvider; import com.oracle.graal.replacements.ReplacementsImpl; import com.oracle.graal.replacements.StandardGraphBuilderPlugins; @@ -102,9 +101,8 @@ Plugins plugins = new Plugins(invocationPlugins); NodeIntrinsificationProvider nodeIntrinsificationProvider = new NodeIntrinsificationProvider(metaAccess, snippetReflection, foreignCalls, wordTypes); - NodeIntrinsificationPlugin nodeIntrinsificationPlugin = new NodeIntrinsificationPlugin(); HotSpotWordOperationPlugin wordOperationPlugin = new HotSpotWordOperationPlugin(snippetReflection, wordTypes); - HotSpotNodePlugin nodePlugin = new HotSpotNodePlugin(wordOperationPlugin, nodeIntrinsificationPlugin); + HotSpotNodePlugin nodePlugin = new HotSpotNodePlugin(wordOperationPlugin); plugins.appendParameterPlugin(nodePlugin); plugins.appendNodePlugin(nodePlugin);
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java Fri Jan 08 23:01:02 2016 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotNodePlugin.java Fri Jan 08 23:33:34 2016 +0100 @@ -31,9 +31,7 @@ import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.ResolvedJavaType; -import com.oracle.graal.api.replacements.Fold; import com.oracle.graal.compiler.common.type.Stamp; -import com.oracle.graal.graph.Node.NodeIntrinsic; import com.oracle.graal.nodes.ConstantNode; import com.oracle.graal.nodes.ValueNode; import com.oracle.graal.nodes.calc.FloatingNode; @@ -41,7 +39,6 @@ import com.oracle.graal.nodes.graphbuilderconf.InlineInvokePlugin; import com.oracle.graal.nodes.graphbuilderconf.NodePlugin; import com.oracle.graal.nodes.graphbuilderconf.ParameterPlugin; -import com.oracle.graal.replacements.NodeIntrinsificationPlugin; import com.oracle.graal.replacements.WordOperationPlugin; import com.oracle.graal.word.Word; @@ -55,24 +52,19 @@ * necessary because HotSpot only uses the {@link Word} type in methods that are force-inlined, * i.e., there are never non-inlined invokes that involve the {@link Word} type. * <p> - * Handling of {@link Fold} and {@link NodeIntrinsic} annotated methods, by forwarding to the - * {@link NodeIntrinsificationPlugin} when parsing intrinsic functions. - * <p> * Constant folding of field loads. */ public final class HotSpotNodePlugin implements NodePlugin, ParameterPlugin { protected final WordOperationPlugin wordOperationPlugin; - protected final NodeIntrinsificationPlugin nodeIntrinsificationPlugin; - public HotSpotNodePlugin(WordOperationPlugin wordOperationPlugin, NodeIntrinsificationPlugin nodeIntrinsificationPlugin) { + public HotSpotNodePlugin(WordOperationPlugin wordOperationPlugin) { this.wordOperationPlugin = wordOperationPlugin; - this.nodeIntrinsificationPlugin = nodeIntrinsificationPlugin; } @Override public boolean canChangeStackKind(GraphBuilderContext b) { if (b.parsingIntrinsic()) { - return wordOperationPlugin.canChangeStackKind(b) || nodeIntrinsificationPlugin.canChangeStackKind(b); + return wordOperationPlugin.canChangeStackKind(b); } return false; } @@ -90,9 +82,6 @@ if (b.parsingIntrinsic() && wordOperationPlugin.handleInvoke(b, method, args)) { return true; } - if (b.parsingIntrinsic() && nodeIntrinsificationPlugin.handleInvoke(b, method, args)) { - return true; - } return false; }
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPlugin.java Fri Jan 08 23:01:02 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* - * 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. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.replacements; - -import jdk.vm.ci.common.JVMCIError; -import jdk.vm.ci.meta.JavaKind; -import jdk.vm.ci.meta.ResolvedJavaMethod; - -import com.oracle.graal.api.replacements.Fold; -import com.oracle.graal.debug.MethodFilter; -import com.oracle.graal.graph.Node.NodeIntrinsic; -import com.oracle.graal.nodes.ValueNode; -import com.oracle.graal.nodes.graphbuilderconf.GraphBuilderContext; -import com.oracle.graal.nodes.graphbuilderconf.NodePlugin; - -/** - * An {@link NodePlugin} that handles methods annotated by {@link Fold} and {@link NodeIntrinsic}. - */ -public class NodeIntrinsificationPlugin implements NodePlugin { - - /** - * Calls in replacements to methods matching one of these filters are elided. Only void methods - * are considered for elision. The use of "snippets" in name of the variable and system property - * is purely for legacy reasons. - */ - private static final MethodFilter[] MethodsElidedInSnippets = getMethodsElidedInSnippets(); - - private static MethodFilter[] getMethodsElidedInSnippets() { - String commaSeparatedPatterns = System.getProperty("graal.MethodsElidedInSnippets"); - if (commaSeparatedPatterns != null) { - return MethodFilter.parse(commaSeparatedPatterns); - } - return null; - } - - @Override - public boolean handleInvoke(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args) { - if (MethodsElidedInSnippets != null) { - if (MethodFilter.matches(MethodsElidedInSnippets, method)) { - if (method.getSignature().getReturnKind() != JavaKind.Void) { - throw new JVMCIError("Cannot elide non-void method " + method.format("%H.%n(%p)")); - } - return true; - } - } - return false; - } -}