# HG changeset patch # User Lukas Stadler # Date 1327680423 -3600 # Node ID 04ebcabcba4f1c46db4f96fb9695785f424a73e4 # Parent b801d2f9e2b08c975309bdc8d4b3be8e894a5cd6 misc cleanup * imports, asserts, ... * let StructuredGraph.removeSplit, etc. also remove the BeginNode * Eclipse formatting: leave the header comments intact diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/DataFlowAnalysis.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/DataFlowAnalysis.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/alloc/simple/DataFlowAnalysis.java Fri Jan 27 17:07:03 2012 +0100 @@ -22,7 +22,7 @@ */ package com.oracle.max.graal.alloc.simple; -import static com.oracle.max.graal.compiler.lir.LIRPhiMapping.*; +import static com.oracle.max.cri.ci.CiValueUtil.*; import static com.oracle.max.graal.alloc.util.ValueUtil.*; import java.util.*; @@ -34,6 +34,7 @@ import com.oracle.max.graal.compiler.alloc.*; import com.oracle.max.graal.compiler.lir.*; import com.oracle.max.graal.compiler.lir.LIRInstruction.ValueProcedure; +import com.oracle.max.graal.compiler.lir.LIRPhiMapping.PhiValueProcedure; import com.oracle.max.graal.compiler.schedule.*; public class DataFlowAnalysis { diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/FloatingReadPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/FloatingReadPhase.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/FloatingReadPhase.java Fri Jan 27 17:07:03 2012 +0100 @@ -31,7 +31,7 @@ import com.oracle.max.graal.compiler.schedule.*; import com.oracle.max.graal.graph.*; import com.oracle.max.graal.nodes.*; -import com.oracle.max.graal.nodes.PhiNode.*; +import com.oracle.max.graal.nodes.PhiNode.PhiType; import com.oracle.max.graal.nodes.extended.*; public class FloatingReadPhase extends Phase { diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GlobalValueNumberingPhase.java --- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GlobalValueNumberingPhase.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/phases/GlobalValueNumberingPhase.java Fri Jan 27 17:07:03 2012 +0100 @@ -46,7 +46,9 @@ if (n.getNodeClass().valueNumberable()) { Node newNode = compilerGraph.findDuplicate(n); if (newNode != null) { - n.replaceAndDelete(newNode); + assert !(n instanceof FixedNode || newNode instanceof FixedNode); + n.replaceAtUsages(newNode); + n.safeDelete(); if (GraalOptions.Meter) { currentContext.metrics.GlobalValueNumberingHits++; } diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/IfNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/IfNode.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/IfNode.java Fri Jan 27 17:07:03 2012 +0100 @@ -25,6 +25,7 @@ import java.util.*; import com.oracle.max.cri.ci.*; +import com.oracle.max.graal.graph.*; import com.oracle.max.graal.nodes.spi.*; import com.oracle.max.graal.nodes.type.*; @@ -86,7 +87,7 @@ * @param istrue {@code true} if the true successor is requested, {@code false} otherwise * @return the corresponding successor */ - public FixedNode successor(boolean istrue) { + public BeginNode successor(boolean istrue) { return blockSuccessor(istrue ? 0 : 1); } diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/StructuredGraph.java Fri Jan 27 17:07:03 2012 +0100 @@ -28,6 +28,7 @@ import com.oracle.max.graal.graph.*; import com.oracle.max.graal.nodes.calc.*; import com.oracle.max.graal.nodes.java.*; +import com.oracle.max.graal.nodes.util.*; /** @@ -191,12 +192,38 @@ assert node != null; assert node.usages().isEmpty(); assert survivingSuccessor >= 0 && survivingSuccessor < node.blockSuccessorCount() : "invalid surviving successor " + survivingSuccessor + " for " + node; - FixedNode next = node.blockSuccessor(survivingSuccessor); + BeginNode begin = node.blockSuccessor(survivingSuccessor); + FixedNode next = begin.next(); + begin.setNext(null); for (int i = 0; i < node.blockSuccessorCount(); i++) { node.setBlockSuccessor(i, null); } node.replaceAtPredecessors(next); node.safeDelete(); + begin.safeDelete(); + } + + public void removeSplitPropagate(ControlSplitNode node, int survivingSuccessor) { + assert node != null; + assert node.usages().isEmpty(); + assert survivingSuccessor >= 0 && survivingSuccessor < node.blockSuccessorCount() : "invalid surviving successor " + survivingSuccessor + " for " + node; + BeginNode begin = node.blockSuccessor(survivingSuccessor); + FixedNode next = begin.next(); + begin.setNext(null); + for (int i = 0; i < node.blockSuccessorCount(); i++) { + BeginNode successor = node.blockSuccessor(i); + node.setBlockSuccessor(i, null); + if (successor != begin && successor.isAlive()) { + GraphUtil.killCFG(successor); + } + } + if (next.isAlive()) { + node.replaceAtPredecessors(next); + node.safeDelete(); + begin.safeDelete(); + } else { + assert node.isDeleted(); + } } public void replaceSplit(ControlSplitNode node, Node replacement, int survivingSuccessor) { @@ -212,24 +239,30 @@ public void replaceSplitWithFixed(ControlSplitNode node, FixedWithNextNode replacement, int survivingSuccessor) { assert node != null && replacement != null && node.isAlive() && replacement.isAlive() : "cannot replace " + node + " with " + replacement; assert survivingSuccessor >= 0 && survivingSuccessor < node.blockSuccessorCount() : "invalid surviving successor " + survivingSuccessor + " for " + node; - FixedNode next = node.blockSuccessor(survivingSuccessor); + BeginNode begin = node.blockSuccessor(survivingSuccessor); + FixedNode next = begin.next(); + begin.setNext(null); for (int i = 0; i < node.blockSuccessorCount(); i++) { node.setBlockSuccessor(i, null); } replacement.setNext(next); node.replaceAndDelete(replacement); + begin.safeDelete(); } public void replaceSplitWithFloating(ControlSplitNode node, FloatingNode replacement, int survivingSuccessor) { assert node != null && replacement != null && node.isAlive() && replacement.isAlive() : "cannot replace " + node + " with " + replacement; assert survivingSuccessor >= 0 && survivingSuccessor < node.blockSuccessorCount() : "invalid surviving successor " + survivingSuccessor + " for " + node; - FixedNode next = node.blockSuccessor(survivingSuccessor); + BeginNode begin = node.blockSuccessor(survivingSuccessor); + FixedNode next = begin.next(); + begin.setNext(null); for (int i = 0; i < node.blockSuccessorCount(); i++) { node.setBlockSuccessor(i, null); } node.replaceAtPredecessors(next); node.replaceAtUsages(replacement); node.safeDelete(); + begin.safeDelete(); } public void addAfterFixed(FixedWithNextNode node, FixedWithNextNode newNode) { diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/extended/LookupSwitchNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/extended/LookupSwitchNode.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/extended/LookupSwitchNode.java Fri Jan 27 17:07:03 2012 +0100 @@ -41,6 +41,7 @@ */ public LookupSwitchNode(ValueNode value, BeginNode[] successors, int[] keys, double[] probability) { super(value, successors, probability); + assert successors.length == keys.length + 1; this.keys = keys; } diff -r b801d2f9e2b0 -r 04ebcabcba4f graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/InstanceOfNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/InstanceOfNode.java Fri Jan 27 00:40:26 2012 +0100 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/InstanceOfNode.java Fri Jan 27 17:07:03 2012 +0100 @@ -34,7 +34,11 @@ */ public final class InstanceOfNode extends TypeCheckNode implements Canonicalizable, LIRLowerable { - @Data public final boolean negated; + @Data private final boolean negated; + + public boolean negated() { + return negated; + } /** * Constructs a new InstanceOfNode. @@ -71,8 +75,7 @@ if (constant.isNull()) { return ConstantNode.forBoolean(negated, graph()); } else { - // this should never happen - non-null constants are always expected to provide an exactType - assert false; + assert false : "non-null constants are always expected to provide an exactType"; } } return this; diff -r b801d2f9e2b0 -r 04ebcabcba4f mx/eclipse-settings/org.eclipse.jdt.core.prefs --- a/mx/eclipse-settings/org.eclipse.jdt.core.prefs Fri Jan 27 00:40:26 2012 +0100 +++ b/mx/eclipse-settings/org.eclipse.jdt.core.prefs Fri Jan 27 17:07:03 2012 +0100 @@ -167,7 +167,7 @@ org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false org.eclipse.jdt.core.formatter.comment.format_block_comments=true org.eclipse.jdt.core.formatter.comment.format_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=true +org.eclipse.jdt.core.formatter.comment.format_header=false org.eclipse.jdt.core.formatter.comment.format_html=true org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true org.eclipse.jdt.core.formatter.comment.format_line_comments=true diff -r b801d2f9e2b0 -r 04ebcabcba4f mx/eclipse-settings/org.eclipse.jdt.ui.prefs --- a/mx/eclipse-settings/org.eclipse.jdt.ui.prefs Fri Jan 27 00:40:26 2012 +0100 +++ b/mx/eclipse-settings/org.eclipse.jdt.ui.prefs Fri Jan 27 17:07:03 2012 +0100 @@ -48,7 +48,7 @@ cleanup_settings_version=2 comment_clear_blank_lines=false comment_format_comments=true -comment_format_header=true +comment_format_header=false comment_format_html=true comment_format_source_code=true comment_indent_parameter_description=true