changeset 15244:a7d08ab4842f

make MergeNode.simplify work with a null SimplifierTool
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 17 Apr 2014 11:32:26 +0200
parents 43f26891ed2e
children c52e6ff7b8ca
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Thu Apr 17 11:32:21 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java	Thu Apr 17 11:32:26 2014 +0200
@@ -132,6 +132,10 @@
         return super.anchored().filter(n -> !isPhiAtMerge(n));
     }
 
+    /**
+     * This simplify method can deal with a null value for tool, so that it can be used outside of
+     * canonicalization.
+     */
     @Override
     public void simplify(SimplifierTool tool) {
         FixedNode next = next();
@@ -180,7 +184,9 @@
                 this.removeEnd(end);
                 end.replaceAtPredecessor(newEnd);
                 end.safeDelete();
-                tool.addToWorkList(newEnd.predecessor()); // ?
+                if (tool != null) {
+                    tool.addToWorkList(newEnd.predecessor());
+                }
             }
             graph().reduceTrivialMerge(this);
         } else if (next instanceof ReturnNode) {