# HG changeset patch # User Gilles Duboscq # Date 1404474034 -7200 # Node ID 39f9f052e5a8821f371e98805810060c0b3d8bb4 # Parent 639716622dc877f0f10d0d013844ef35238a3ff7 Move DefaultCanonicalizerTool to GraphUtil and make it a DefaultSimplifierTool diff -r 639716622dc8 -r 39f9f052e5a8 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/spi/DefaultCanonicalizerTool.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/spi/DefaultCanonicalizerTool.java Thu Jul 03 18:27:08 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2011, 2014, 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.graph.spi; - -import com.oracle.graal.api.code.*; -import com.oracle.graal.api.meta.*; - -public class DefaultCanonicalizerTool implements CanonicalizerTool { - - private final Assumptions assumptions; - private final MetaAccessProvider metaAccess; - private final ConstantReflectionProvider constantReflection; - private final boolean canonicalizeReads; - - public DefaultCanonicalizerTool(Assumptions assumptions, MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, boolean canonicalizeReads) { - this.assumptions = assumptions; - this.metaAccess = metaAccess; - this.constantReflection = constantReflection; - this.canonicalizeReads = canonicalizeReads; - } - - public Assumptions assumptions() { - return assumptions; - } - - public MetaAccessProvider getMetaAccess() { - return metaAccess; - } - - public ConstantReflectionProvider getConstantReflection() { - return constantReflection; - } - - public boolean canonicalizeReads() { - return canonicalizeReads; - } -} diff -r 639716622dc8 -r 39f9f052e5a8 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Thu Jul 03 18:27:08 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Fri Jul 04 13:40:34 2014 +0200 @@ -24,6 +24,7 @@ import java.util.*; +import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.graph.*; import com.oracle.graal.graph.iterators.*; @@ -441,4 +442,53 @@ } }; } + + private static final class DefaultSimplifierTool implements SimplifierTool { + private final Assumptions assumptions; + private final MetaAccessProvider metaAccess; + private final ConstantReflectionProvider constantReflection; + private final boolean canonicalizeReads; + + public DefaultSimplifierTool(Assumptions assumptions, MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, boolean canonicalizeReads) { + this.assumptions = assumptions; + this.metaAccess = metaAccess; + this.constantReflection = constantReflection; + this.canonicalizeReads = canonicalizeReads; + } + + public Assumptions assumptions() { + return assumptions; + } + + public MetaAccessProvider getMetaAccess() { + return metaAccess; + } + + public ConstantReflectionProvider getConstantReflection() { + return constantReflection; + } + + public boolean canonicalizeReads() { + return canonicalizeReads; + } + + public void deleteBranch(Node branch) { + branch.predecessor().replaceFirstSuccessor(branch, null); + GraphUtil.killCFG(branch, this); + } + + public void removeIfUnused(Node node) { + GraphUtil.tryKillUnused(node); + } + + public void addToWorkList(Node node) { + } + + public void addToWorkList(Iterable nodes) { + } + } + + public static SimplifierTool getDefaultSimplifier(Assumptions assumptions, MetaAccessProvider metaAccess, ConstantReflectionProvider constantReflection, boolean canonicalizeReads) { + return new DefaultSimplifierTool(assumptions, metaAccess, constantReflection, canonicalizeReads); + } }