# HG changeset patch
# User Thomas Wuerthinger
# Date 1422402631 -3600
# Node ID 480bd3b1adcd36d54a7503036ac6c29d0e4a6fab
# Parent b1c03c2bfa4047c5150ce24b9544200e35673628
Rename BeginNode => AbstractBeginNode.
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SimpleCFGTest.java
--- a/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SimpleCFGTest.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SimpleCFGTest.java Wed Jan 28 00:50:31 2015 +0100
@@ -45,9 +45,9 @@
AbstractEndNode trueEnd = graph.add(new EndNode());
AbstractEndNode falseEnd = graph.add(new EndNode());
- BeginNode trueBegin = graph.add(new BeginNode());
+ AbstractBeginNode trueBegin = graph.add(new AbstractBeginNode());
trueBegin.setNext(trueEnd);
- BeginNode falseBegin = graph.add(new BeginNode());
+ AbstractBeginNode falseBegin = graph.add(new AbstractBeginNode());
falseBegin.setNext(falseEnd);
IfNode ifNode = graph.add(new IfNode(null, trueBegin, falseBegin, 0.5));
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Wed Jan 28 00:50:31 2015 +0100
@@ -592,7 +592,7 @@
}
@Override
- public void emitOverflowCheckBranch(BeginNode overflowSuccessor, BeginNode next, Stamp stamp, double probability) {
+ public void emitOverflowCheckBranch(AbstractBeginNode overflowSuccessor, AbstractBeginNode next, Stamp stamp, double probability) {
LIRKind cmpKind = getLIRGeneratorTool().getLIRKind(stamp);
gen.emitOverflowCheckBranch(getLIRBlock(overflowSuccessor), getLIRBlock(next), cmpKind, probability);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java
--- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java Wed Jan 28 00:50:31 2015 +0100
@@ -698,7 +698,7 @@
}
@Override
- protected Boolean afterSplit(BeginNode node, Boolean oldState) {
+ protected Boolean afterSplit(AbstractBeginNode node, Boolean oldState) {
return false;
}
};
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Wed Jan 28 00:50:31 2015 +0100
@@ -301,7 +301,7 @@
* Anchor the read of the element klass to the cfg, because it is only valid when arrayClass
* is an object class, which might not be the case in other parts of the compiled method.
*/
- return graph.unique(new FloatingReadNode(arrayHub, location, null, KlassPointerStamp.klassNonNull(), BeginNode.prevBegin(anchor)));
+ return graph.unique(new FloatingReadNode(arrayHub, location, null, KlassPointerStamp.klassNonNull(), AbstractBeginNode.prevBegin(anchor)));
}
@Override
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SnippetAnchorNode.java
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SnippetAnchorNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SnippetAnchorNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -37,7 +37,7 @@
@Override
public void simplify(SimplifierTool tool) {
- BeginNode prevBegin = BeginNode.prevBegin(this);
+ AbstractBeginNode prevBegin = AbstractBeginNode.prevBegin(this);
replaceAtUsages(InputType.Anchor, prevBegin);
replaceAtUsages(InputType.Guard, prevBegin);
if (hasNoUsages()) {
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -156,7 +156,7 @@
* The read must not float outside its block otherwise it may float above an explicit zero
* check on its base address.
*/
- read.setGuard(BeginNode.prevBegin(invoke.asNode()));
+ read.setGuard(AbstractBeginNode.prevBegin(invoke.asNode()));
return read;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/ComputeLoopFrequenciesClosure.java Wed Jan 28 00:50:31 2015 +0100
@@ -51,7 +51,7 @@
}
@Override
- protected Double afterSplit(BeginNode node, Double oldState) {
+ protected Double afterSplit(AbstractBeginNode node, Double oldState) {
// a control split splits up the probability
ControlSplitNode split = (ControlSplitNode) node.predecessor();
return oldState * split.probability(node);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -299,7 +299,7 @@
@Override
protected void handleUnresolvedInstanceOf(JavaType type, ValueNode object) {
assert !graphBuilderConfig.eagerResolving();
- BeginNode successor = currentGraph.add(new BeginNode());
+ AbstractBeginNode successor = currentGraph.add(new AbstractBeginNode());
DeoptimizeNode deopt = currentGraph.add(new DeoptimizeNode(InvalidateRecompile, Unresolved));
append(new IfNode(currentGraph.unique(new IsNullNode(object)), successor, deopt, 1));
lastInstr = successor;
@@ -609,7 +609,7 @@
return;
}
BytecodeExceptionNode exception = currentGraph.add(new BytecodeExceptionNode(metaAccess, NullPointerException.class));
- BeginNode falseSucc = currentGraph.add(new BeginNode());
+ AbstractBeginNode falseSucc = currentGraph.add(new AbstractBeginNode());
append(new IfNode(currentGraph.unique(new IsNullNode(receiver)), exception, falseSucc, 0.01));
lastInstr = falseSucc;
@@ -619,7 +619,7 @@
@Override
protected void emitBoundsCheck(ValueNode index, ValueNode length) {
- BeginNode trueSucc = currentGraph.add(new BeginNode());
+ AbstractBeginNode trueSucc = currentGraph.add(new AbstractBeginNode());
BytecodeExceptionNode exception = currentGraph.add(new BytecodeExceptionNode(metaAccess, ArrayIndexOutOfBoundsException.class, index));
append(new IfNode(currentGraph.unique(new IntegerBelowNode(index, length)), trueSucc, exception, 0.99));
lastInstr = trueSucc;
@@ -795,7 +795,7 @@
createInvoke(callTarget, resultType);
} else {
InvokeWithExceptionNode invoke = createInvokeWithException(callTarget, resultType);
- BeginNode beginNode = currentGraph.add(new KillingBeginNode(LocationIdentity.ANY_LOCATION));
+ AbstractBeginNode beginNode = currentGraph.add(new KillingBeginNode(LocationIdentity.ANY_LOCATION));
invoke.setNext(beginNode);
lastInstr = beginNode;
}
@@ -1044,7 +1044,7 @@
* this block again.
*/
FixedNode targetNode;
- block.firstInstruction = currentGraph.add(new BeginNode());
+ block.firstInstruction = currentGraph.add(new AbstractBeginNode());
targetNode = block.firstInstruction;
Target target = checkLoopExit(targetNode, block, state);
FixedNode result = target.fixed;
@@ -1077,13 +1077,13 @@
assert currentBlock == null || currentBlock.getId() < block.getId() : "must not be backward branch";
assert block.firstInstruction.next() == null : "bytecodes already parsed for block";
- if (block.firstInstruction instanceof BeginNode && !(block.firstInstruction instanceof MergeNode)) {
+ if (block.firstInstruction instanceof AbstractBeginNode && !(block.firstInstruction instanceof MergeNode)) {
/*
* This is the second time we see this block. Create the actual MergeNode and
* the End Node for the already existing edge. For simplicity, we leave the
* placeholder in the graph and just append the new nodes after the placeholder.
*/
- BeginNode placeholder = (BeginNode) block.firstInstruction;
+ AbstractBeginNode placeholder = (AbstractBeginNode) block.firstInstruction;
// The EndNode for the already existing edge.
AbstractEndNode end = currentGraph.add(new EndNode());
@@ -1121,9 +1121,9 @@
* Returns a block begin node with the specified state. If the specified probability is
* 0, the block deoptimizes immediately.
*/
- private BeginNode createBlockTarget(double probability, BciBlock block, HIRFrameStateBuilder stateAfter) {
+ private AbstractBeginNode createBlockTarget(double probability, BciBlock block, HIRFrameStateBuilder stateAfter) {
FixedNode target = createTarget(probability, block, stateAfter);
- BeginNode begin = BeginNode.begin(target);
+ AbstractBeginNode begin = AbstractBeginNode.begin(target);
assert !(target instanceof DeoptimizeNode && begin instanceof BeginStateSplitNode && ((BeginStateSplitNode) begin).stateAfter() != null) : "We are not allowed to set the stateAfter of the begin node, because we have to deoptimize "
+ "to a bci _before_ the actual if, so that the interpreter can update the profiling information.";
@@ -1355,7 +1355,7 @@
frameState.clearNonLiveLocals(currentBlock, liveness, false);
}
if (lastInstr instanceof StateSplit) {
- if (lastInstr.getClass() == BeginNode.class) {
+ if (lastInstr.getClass() == AbstractBeginNode.class) {
// BeginNodes do not need a frame state
} else {
StateSplit stateSplit = (StateSplit) lastInstr;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java Wed Jan 28 00:50:31 2015 +0100
@@ -294,7 +294,7 @@
}
}
- public void insertProxies(BeginNode begin) {
+ public void insertProxies(AbstractBeginNode begin) {
for (int i = 0; i < localsSize(); i++) {
ValueNode value = localAt(i);
if (value != null) {
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java Wed Jan 28 00:50:31 2015 +0100
@@ -38,9 +38,9 @@
private InductionVariable iv;
private ValueNode end;
private boolean oneOff;
- private BeginNode body;
+ private AbstractBeginNode body;
- CountedLoopInfo(LoopEx loop, InductionVariable iv, ValueNode end, boolean oneOff, BeginNode body) {
+ CountedLoopInfo(LoopEx loop, InductionVariable iv, ValueNode end, boolean oneOff, AbstractBeginNode body) {
this.loop = loop;
this.iv = iv;
this.end = end;
@@ -118,7 +118,7 @@
return oneOff;
}
- public BeginNode getBody() {
+ public AbstractBeginNode getBody() {
return body;
}
@@ -157,7 +157,7 @@
}
cond = graph.unique(new IntegerLessThanNode(end, v1));
}
- overflowGuard = graph.unique(new GuardNode(cond, BeginNode.prevBegin(loop.entryPoint()), DeoptimizationReason.LoopLimitCheck, DeoptimizationAction.InvalidateRecompile, true,
+ overflowGuard = graph.unique(new GuardNode(cond, AbstractBeginNode.prevBegin(loop.entryPoint()), DeoptimizationReason.LoopLimitCheck, DeoptimizationAction.InvalidateRecompile, true,
JavaConstant.NULL_POINTER)); // TODO gd: use speculation
loop.loopBegin().setOverflowGuard(overflowGuard);
return overflowGuard;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Wed Jan 28 00:50:31 2015 +0100
@@ -230,8 +230,8 @@
return data;
}
- public NodeBitMap nodesInLoopFrom(BeginNode point, BeginNode until) {
- Collection blocks = new LinkedList<>();
+ public NodeBitMap nodesInLoopFrom(AbstractBeginNode point, AbstractBeginNode until) {
+ Collection blocks = new LinkedList<>();
Collection exits = new LinkedList<>();
Queue work = new LinkedList<>();
ControlFlowGraph cfg = loopsData().controlFlowGraph();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Wed Jan 28 00:50:31 2015 +0100
@@ -150,13 +150,13 @@
}
}
- protected static NodeBitMap computeNodes(Graph graph, Iterable blocks) {
+ protected static NodeBitMap computeNodes(Graph graph, Iterable blocks) {
return computeNodes(graph, blocks, Collections.emptyList());
}
- protected static NodeBitMap computeNodes(Graph graph, Iterable blocks, Iterable earlyExits) {
+ protected static NodeBitMap computeNodes(Graph graph, Iterable blocks, Iterable earlyExits) {
final NodeBitMap nodes = graph.createNodeBitMap();
- for (BeginNode b : blocks) {
+ for (AbstractBeginNode b : blocks) {
if (b.isDeleted()) {
continue;
}
@@ -188,7 +188,7 @@
}
final NodeBitMap notloopNodes = graph.createNodeBitMap();
- for (BeginNode b : blocks) {
+ for (AbstractBeginNode b : blocks) {
if (b.isDeleted()) {
continue;
}
@@ -245,19 +245,19 @@
return false;
}
- public static NodeIterable toHirBlocks(final Iterable blocks) {
- return new NodeIterable() {
+ public static NodeIterable toHirBlocks(final Iterable blocks) {
+ return new NodeIterable() {
- public Iterator iterator() {
+ public Iterator iterator() {
final Iterator it = blocks.iterator();
- return new Iterator() {
+ return new Iterator() {
@Override
public void remove() {
throw new UnsupportedOperationException();
}
- public BeginNode next() {
+ public AbstractBeginNode next() {
return it.next().getBeginNode();
}
@@ -302,13 +302,13 @@
protected void mergeEarlyExits() {
assert isDuplicate();
StructuredGraph graph = graph();
- for (BeginNode earlyExit : LoopFragment.toHirBlocks(original().loop().loop().getExits())) {
+ for (AbstractBeginNode earlyExit : LoopFragment.toHirBlocks(original().loop().loop().getExits())) {
LoopExitNode loopEarlyExit = (LoopExitNode) earlyExit;
FixedNode next = loopEarlyExit.next();
if (loopEarlyExit.isDeleted() || !this.original().contains(loopEarlyExit)) {
continue;
}
- BeginNode newEarlyExit = getDuplicatedNode(loopEarlyExit);
+ AbstractBeginNode newEarlyExit = getDuplicatedNode(loopEarlyExit);
if (newEarlyExit == null) {
continue;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Wed Jan 28 00:50:31 2015 +0100
@@ -89,13 +89,13 @@
patchNodes(dataFixBefore);
- BeginNode end = mergeEnds();
+ AbstractBeginNode end = mergeEnds();
mergeEarlyExits();
original().patchPeeling(this);
- BeginNode entry = getDuplicatedNode(loop.loopBegin());
+ AbstractBeginNode entry = getDuplicatedNode(loop.loopBegin());
loop.entryPoint().replaceAtPredecessor(entry);
end.setNext(loop.entryPoint());
}
@@ -152,7 +152,7 @@
if (value != null) {
return value;
}
- BeginNode newValue = graph.add(new BeginNode());
+ AbstractBeginNode newValue = graph.add(new AbstractBeginNode());
seenNode.put(original, newValue);
return newValue;
}
@@ -161,7 +161,7 @@
if (value != null) {
return value;
}
- BeginNode newValue = graph.add(new BeginNode());
+ AbstractBeginNode newValue = graph.add(new AbstractBeginNode());
seenNode.put(original, newValue);
return newValue;
}
@@ -291,7 +291,7 @@
}
}
- private BeginNode mergeEnds() {
+ private AbstractBeginNode mergeEnds() {
assert isDuplicate();
List endsToMerge = new LinkedList<>();
// map peel exits to the corresponding loop exits
@@ -305,12 +305,12 @@
}
}
mergedInitializers = Node.newIdentityMap();
- BeginNode newExit;
+ AbstractBeginNode newExit;
StructuredGraph graph = graph();
if (endsToMerge.size() == 1) {
AbstractEndNode end = endsToMerge.get(0);
assert end.hasNoUsages();
- newExit = graph.add(new BeginNode());
+ newExit = graph.add(new AbstractBeginNode());
end.replaceAtPredecessor(newExit);
end.safeDelete();
} else {
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java Wed Jan 28 00:50:31 2015 +0100
@@ -70,9 +70,9 @@
double maxProbability = 0;
for (ControlSplitNode controlSplit : controlSplits) {
Block postDomBlock = loop.loopsData().controlFlowGraph().blockFor(controlSplit).getPostdominator();
- BeginNode postDom = postDomBlock != null ? postDomBlock.getBeginNode() : null;
+ AbstractBeginNode postDom = postDomBlock != null ? postDomBlock.getBeginNode() : null;
for (Node successor : controlSplit.successors()) {
- BeginNode branch = (BeginNode) successor;
+ AbstractBeginNode branch = (AbstractBeginNode) successor;
// this may count twice because of fall-through in switches
inBranchTotal += loop.nodesInLoopFrom(branch, postDom).count();
double probability = controlSplit.probability(branch);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopTransformations.java Wed Jan 28 00:50:31 2015 +0100
@@ -89,21 +89,21 @@
assert successors.hasNext();
// original loop is used as first successor
Position firstPosition = successors.nextPosition();
- BeginNode originalLoopBegin = BeginNode.begin(originalLoop.entryPoint());
+ AbstractBeginNode originalLoopBegin = AbstractBeginNode.begin(originalLoop.entryPoint());
firstPosition.set(newControlSplit, originalLoopBegin);
while (successors.hasNext()) {
Position position = successors.nextPosition();
// create a new loop duplicate and connect it.
LoopFragmentWhole duplicateLoop = originalLoop.duplicate();
- BeginNode newBegin = BeginNode.begin(duplicateLoop.entryPoint());
+ AbstractBeginNode newBegin = AbstractBeginNode.begin(duplicateLoop.entryPoint());
position.set(newControlSplit, newBegin);
// For each cloned ControlSplitNode, simplify the proper path
for (ControlSplitNode controlSplitNode : controlSplitNodeSet) {
ControlSplitNode duplicatedControlSplit = duplicateLoop.getDuplicatedNode(controlSplitNode);
if (duplicatedControlSplit.isAlive()) {
- BeginNode survivingSuccessor = (BeginNode) position.get(duplicatedControlSplit);
+ AbstractBeginNode survivingSuccessor = (AbstractBeginNode) position.get(duplicatedControlSplit);
survivingSuccessor.replaceAtUsages(InputType.Guard, newBegin);
graph.removeSplitPropagate(duplicatedControlSplit, survivingSuccessor);
}
@@ -112,7 +112,7 @@
// original loop is simplified last to avoid deleting controlSplitNode too early
for (ControlSplitNode controlSplitNode : controlSplitNodeSet) {
if (controlSplitNode.isAlive()) {
- BeginNode survivingSuccessor = (BeginNode) firstPosition.get(controlSplitNode);
+ AbstractBeginNode survivingSuccessor = (AbstractBeginNode) firstPosition.get(controlSplitNode);
survivingSuccessor.replaceAtUsages(InputType.Guard, originalLoopBegin);
graph.removeSplitPropagate(controlSplitNode, survivingSuccessor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopTransformLowPhase.java
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopTransformLowPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopTransformLowPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -86,7 +86,7 @@
sb.append(controlSplit).append(" [");
NodePosIterator it = controlSplit.successors().iterator();
while (it.hasNext()) {
- sb.append(controlSplit.probability((BeginNode) it.next()));
+ sb.append(controlSplit.probability((AbstractBeginNode) it.next()));
if (it.hasNext()) {
sb.append(", ");
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2011, 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.nodes;
+
+import static com.oracle.graal.graph.iterators.NodePredicates.*;
+
+import java.util.*;
+
+import com.oracle.graal.compiler.common.type.*;
+import com.oracle.graal.graph.*;
+import com.oracle.graal.graph.iterators.*;
+import com.oracle.graal.graph.spi.*;
+import com.oracle.graal.nodeinfo.*;
+import com.oracle.graal.nodes.extended.*;
+import com.oracle.graal.nodes.spi.*;
+import com.oracle.graal.nodes.util.*;
+
+@NodeInfo(allowedUsageTypes = {InputType.Guard, InputType.Anchor})
+public class AbstractBeginNode extends FixedWithNextNode implements LIRLowerable, Simplifiable, GuardingNode, AnchoringNode, IterableNodeType {
+
+ public AbstractBeginNode() {
+ super(StampFactory.forVoid());
+ }
+
+ public AbstractBeginNode(Stamp stamp) {
+ super(stamp);
+ }
+
+ public static AbstractBeginNode begin(FixedNode with) {
+ if (with instanceof AbstractBeginNode) {
+ return (AbstractBeginNode) with;
+ }
+ AbstractBeginNode begin = with.graph().add(new AbstractBeginNode());
+ begin.setNext(with);
+ return begin;
+ }
+
+ @Override
+ public void simplify(SimplifierTool tool) {
+ FixedNode prev = (FixedNode) this.predecessor();
+ if (prev == null) {
+ // This is the start node.
+ } else if (prev instanceof ControlSplitNode) {
+ // This begin node is necessary.
+ } else {
+ // This begin node can be removed and all guards moved up to the preceding begin node.
+ prepareDelete();
+ tool.addToWorkList(next());
+ graph().removeFixed(this);
+ }
+ }
+
+ public static AbstractBeginNode prevBegin(FixedNode from) {
+ for (AbstractBeginNode begin : GraphUtil.predecessorIterable(from).filter(AbstractBeginNode.class)) {
+ return begin;
+ }
+ return null;
+ }
+
+ private void evacuateGuards(FixedNode evacuateFrom) {
+ if (!hasNoUsages()) {
+ AbstractBeginNode prevBegin = prevBegin(evacuateFrom);
+ assert prevBegin != null;
+ for (Node anchored : anchored().snapshot()) {
+ anchored.replaceFirstInput(this, prevBegin);
+ }
+ }
+ }
+
+ public void prepareDelete() {
+ prepareDelete((FixedNode) predecessor());
+ }
+
+ public void prepareDelete(FixedNode evacuateFrom) {
+ removeProxies();
+ evacuateGuards(evacuateFrom);
+ }
+
+ public void removeProxies() {
+ for (ProxyNode vpn : proxies().snapshot()) {
+ // can not use graph.replaceFloating because vpn.value may be null during killCFG
+ vpn.replaceAtUsages(vpn.value());
+ vpn.safeDelete();
+ }
+ }
+
+ @Override
+ public boolean verify() {
+ assertTrue(predecessor() != null || this == graph().start() || this instanceof MergeNode, "begin nodes must be connected");
+ return super.verify();
+ }
+
+ @Override
+ public void generate(NodeLIRBuilderTool gen) {
+ // nop
+ }
+
+ public NodeIterable guards() {
+ return usages().filter(GuardNode.class);
+ }
+
+ public NodeIterable anchored() {
+ return usages().filter(isNotA(ProxyNode.class));
+ }
+
+ public NodeIterable proxies() {
+ return usages().filter(ProxyNode.class);
+ }
+
+ public NodeIterable getBlockNodes() {
+ return new NodeIterable() {
+
+ @Override
+ public Iterator iterator() {
+ return new BlockNodeIterator(AbstractBeginNode.this);
+ }
+ };
+ }
+
+ private class BlockNodeIterator implements Iterator {
+
+ private FixedNode current;
+
+ public BlockNodeIterator(FixedNode next) {
+ this.current = next;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return current != null;
+ }
+
+ @Override
+ public FixedNode next() {
+ FixedNode ret = current;
+ if (ret == null) {
+ throw new NoSuchElementException();
+ }
+ if (!(current instanceof FixedWithNextNode) || (current instanceof AbstractBeginNode && current != AbstractBeginNode.this)) {
+ current = null;
+ } else {
+ current = ((FixedWithNextNode) current).next();
+ }
+ return ret;
+ }
+
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractFixedGuardNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractFixedGuardNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractFixedGuardNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -90,7 +90,7 @@
DeoptimizeNode deopt = graph().add(new DeoptimizeNode(action, reason));
deopt.setStateBefore(stateBefore());
IfNode ifNode;
- BeginNode noDeoptSuccessor;
+ AbstractBeginNode noDeoptSuccessor;
if (negated) {
ifNode = graph().add(new IfNode(condition, deopt, currentNext, 0));
noDeoptSuccessor = ifNode.falseSuccessor();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java Tue Jan 27 23:52:31 2015 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2011, 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.nodes;
-
-import static com.oracle.graal.graph.iterators.NodePredicates.*;
-
-import java.util.*;
-
-import com.oracle.graal.compiler.common.type.*;
-import com.oracle.graal.graph.*;
-import com.oracle.graal.graph.iterators.*;
-import com.oracle.graal.graph.spi.*;
-import com.oracle.graal.nodeinfo.*;
-import com.oracle.graal.nodes.extended.*;
-import com.oracle.graal.nodes.spi.*;
-import com.oracle.graal.nodes.util.*;
-
-@NodeInfo(allowedUsageTypes = {InputType.Guard, InputType.Anchor})
-public class BeginNode extends FixedWithNextNode implements LIRLowerable, Simplifiable, GuardingNode, AnchoringNode, IterableNodeType {
-
- public BeginNode() {
- super(StampFactory.forVoid());
- }
-
- public BeginNode(Stamp stamp) {
- super(stamp);
- }
-
- public static BeginNode begin(FixedNode with) {
- if (with instanceof BeginNode) {
- return (BeginNode) with;
- }
- BeginNode begin = with.graph().add(new BeginNode());
- begin.setNext(with);
- return begin;
- }
-
- @Override
- public void simplify(SimplifierTool tool) {
- FixedNode prev = (FixedNode) this.predecessor();
- if (prev == null) {
- // This is the start node.
- } else if (prev instanceof ControlSplitNode) {
- // This begin node is necessary.
- } else {
- // This begin node can be removed and all guards moved up to the preceding begin node.
- prepareDelete();
- tool.addToWorkList(next());
- graph().removeFixed(this);
- }
- }
-
- public static BeginNode prevBegin(FixedNode from) {
- for (BeginNode begin : GraphUtil.predecessorIterable(from).filter(BeginNode.class)) {
- return begin;
- }
- return null;
- }
-
- private void evacuateGuards(FixedNode evacuateFrom) {
- if (!hasNoUsages()) {
- BeginNode prevBegin = prevBegin(evacuateFrom);
- assert prevBegin != null;
- for (Node anchored : anchored().snapshot()) {
- anchored.replaceFirstInput(this, prevBegin);
- }
- }
- }
-
- public void prepareDelete() {
- prepareDelete((FixedNode) predecessor());
- }
-
- public void prepareDelete(FixedNode evacuateFrom) {
- removeProxies();
- evacuateGuards(evacuateFrom);
- }
-
- public void removeProxies() {
- for (ProxyNode vpn : proxies().snapshot()) {
- // can not use graph.replaceFloating because vpn.value may be null during killCFG
- vpn.replaceAtUsages(vpn.value());
- vpn.safeDelete();
- }
- }
-
- @Override
- public boolean verify() {
- assertTrue(predecessor() != null || this == graph().start() || this instanceof MergeNode, "begin nodes must be connected");
- return super.verify();
- }
-
- @Override
- public void generate(NodeLIRBuilderTool gen) {
- // nop
- }
-
- public NodeIterable guards() {
- return usages().filter(GuardNode.class);
- }
-
- public NodeIterable anchored() {
- return usages().filter(isNotA(ProxyNode.class));
- }
-
- public NodeIterable proxies() {
- return usages().filter(ProxyNode.class);
- }
-
- public NodeIterable getBlockNodes() {
- return new NodeIterable() {
-
- @Override
- public Iterator iterator() {
- return new BlockNodeIterator(BeginNode.this);
- }
- };
- }
-
- private class BlockNodeIterator implements Iterator {
-
- private FixedNode current;
-
- public BlockNodeIterator(FixedNode next) {
- this.current = next;
- }
-
- @Override
- public boolean hasNext() {
- return current != null;
- }
-
- @Override
- public FixedNode next() {
- FixedNode ret = current;
- if (ret == null) {
- throw new NoSuchElementException();
- }
- if (!(current instanceof FixedWithNextNode) || (current instanceof BeginNode && current != BeginNode.this)) {
- current = null;
- } else {
- current = ((FixedWithNextNode) current).next();
- }
- return ret;
- }
-
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -26,14 +26,14 @@
import com.oracle.graal.nodeinfo.*;
/**
- * Base class for {@link BeginNode}s that are associated with a frame state.
+ * Base class for {@link AbstractBeginNode}s that are associated with a frame state.
*
- * TODO (dnsimon) this not needed until {@link BeginNode} no longer implements {@link StateSplit}
+ * TODO (dnsimon) this not needed until {@link AbstractBeginNode} no longer implements {@link StateSplit}
* which is not possible until loop peeling works without requiring begin nodes to have frames
* states.
*/
@NodeInfo
-public abstract class BeginStateSplitNode extends BeginNode implements StateSplit {
+public abstract class BeginStateSplitNode extends AbstractBeginNode implements StateSplit {
@OptionalInput(InputType.State) protected FrameState stateAfter;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -37,5 +37,5 @@
super(stamp);
}
- public abstract double probability(BeginNode successor);
+ public abstract double probability(AbstractBeginNode successor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -33,7 +33,7 @@
@Input(InputType.Guard) GuardingNode value;
- public GuardProxyNode(GuardingNode value, BeginNode proxyPoint) {
+ public GuardProxyNode(GuardingNode value, AbstractBeginNode proxyPoint) {
super(StampFactory.forVoid(), proxyPoint);
this.value = value;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -51,8 +51,8 @@
private static final DebugMetric CORRECTED_PROBABILITIES = Debug.metric("CorrectedProbabilities");
- @Successor BeginNode trueSuccessor;
- @Successor BeginNode falseSuccessor;
+ @Successor AbstractBeginNode trueSuccessor;
+ @Successor AbstractBeginNode falseSuccessor;
@Input(InputType.Condition) LogicNode condition;
protected double trueSuccessorProbability;
@@ -66,10 +66,10 @@
}
public IfNode(LogicNode condition, FixedNode trueSuccessor, FixedNode falseSuccessor, double trueSuccessorProbability) {
- this(condition, BeginNode.begin(trueSuccessor), BeginNode.begin(falseSuccessor), trueSuccessorProbability);
+ this(condition, AbstractBeginNode.begin(trueSuccessor), AbstractBeginNode.begin(falseSuccessor), trueSuccessorProbability);
}
- public IfNode(LogicNode condition, BeginNode trueSuccessor, BeginNode falseSuccessor, double trueSuccessorProbability) {
+ public IfNode(LogicNode condition, AbstractBeginNode trueSuccessor, AbstractBeginNode falseSuccessor, double trueSuccessorProbability) {
super(StampFactory.forVoid());
this.condition = condition;
this.falseSuccessor = falseSuccessor;
@@ -82,7 +82,7 @@
*
* @return the true successor
*/
- public BeginNode trueSuccessor() {
+ public AbstractBeginNode trueSuccessor() {
return trueSuccessor;
}
@@ -91,16 +91,16 @@
*
* @return the false successor
*/
- public BeginNode falseSuccessor() {
+ public AbstractBeginNode falseSuccessor() {
return falseSuccessor;
}
- public void setTrueSuccessor(BeginNode node) {
+ public void setTrueSuccessor(AbstractBeginNode node) {
updatePredecessor(trueSuccessor, node);
trueSuccessor = node;
}
- public void setFalseSuccessor(BeginNode node) {
+ public void setFalseSuccessor(AbstractBeginNode node) {
updatePredecessor(falseSuccessor, node);
falseSuccessor = node;
}
@@ -111,7 +111,7 @@
* @param istrue {@code true} if the true successor is requested, {@code false} otherwise
* @return the corresponding successor
*/
- public BeginNode successor(boolean istrue) {
+ public AbstractBeginNode successor(boolean istrue) {
return istrue ? trueSuccessor : falseSuccessor;
}
@@ -121,7 +121,7 @@
}
@Override
- public double probability(BeginNode successor) {
+ public double probability(AbstractBeginNode successor) {
return successor == trueSuccessor ? trueSuccessorProbability : 1 - trueSuccessorProbability;
}
@@ -153,8 +153,8 @@
}
if (condition() instanceof LogicNegationNode) {
- BeginNode trueSucc = trueSuccessor();
- BeginNode falseSucc = falseSuccessor();
+ AbstractBeginNode trueSucc = trueSuccessor();
+ AbstractBeginNode falseSucc = falseSuccessor();
setTrueSuccessor(null);
setFalseSuccessor(null);
LogicNegationNode negation = (LogicNegationNode) condition();
@@ -190,7 +190,7 @@
}
if (falseSuccessor().hasNoUsages() && (!(falseSuccessor() instanceof LoopExitNode)) && falseSuccessor().next() instanceof IfNode) {
- BeginNode intermediateBegin = falseSuccessor();
+ AbstractBeginNode intermediateBegin = falseSuccessor();
IfNode nextIf = (IfNode) intermediateBegin.next();
double probabilityB = (1.0 - this.trueSuccessorProbability) * nextIf.trueSuccessorProbability;
if (this.trueSuccessorProbability < probabilityB) {
@@ -199,7 +199,7 @@
if (prepareForSwap(tool.getConstantReflection(), condition(), nextIf.condition(), this.trueSuccessorProbability, probabilityB)) {
// Reordering is allowed from (if1 => begin => if2) to (if2 => begin => if1).
assert intermediateBegin.next() == nextIf;
- BeginNode bothFalseBegin = nextIf.falseSuccessor();
+ AbstractBeginNode bothFalseBegin = nextIf.falseSuccessor();
nextIf.setFalseSuccessor(null);
intermediateBegin.setNext(null);
this.setFalseSuccessor(null);
@@ -225,9 +225,9 @@
assert trueSuccessor().hasNoUsages() && falseSuccessor().hasNoUsages();
// push similar nodes upwards through the if, thereby deduplicating them
do {
- BeginNode trueSucc = trueSuccessor();
- BeginNode falseSucc = falseSuccessor();
- if (trueSucc.getClass() == BeginNode.class && falseSucc.getClass() == BeginNode.class && trueSucc.next() instanceof FixedWithNextNode && falseSucc.next() instanceof FixedWithNextNode) {
+ AbstractBeginNode trueSucc = trueSuccessor();
+ AbstractBeginNode falseSucc = falseSuccessor();
+ if (trueSucc.getClass() == AbstractBeginNode.class && falseSucc.getClass() == AbstractBeginNode.class && trueSucc.next() instanceof FixedWithNextNode && falseSucc.next() instanceof FixedWithNextNode) {
FixedWithNextNode trueNext = (FixedWithNextNode) trueSucc.next();
FixedWithNextNode falseNext = (FixedWithNextNode) falseSucc.next();
NodeClass nodeClass = trueNext.getNodeClass();
@@ -275,8 +275,8 @@
IfNode ifNode2 = (IfNode) falseSuccessor().next();
if (ifNode2.condition() instanceof IntegerLessThanNode) {
IntegerLessThanNode lessThan2 = (IntegerLessThanNode) ifNode2.condition();
- BeginNode falseSucc = ifNode2.falseSuccessor();
- BeginNode trueSucc = ifNode2.trueSuccessor();
+ AbstractBeginNode falseSucc = ifNode2.falseSuccessor();
+ AbstractBeginNode trueSucc = ifNode2.trueSuccessor();
IntegerBelowNode below = null;
/*
* Convert x >= 0 && x < positive which is represented as !(x < 0) && x <
@@ -286,7 +286,7 @@
sameDestination(trueSuccessor(), ifNode2.falseSuccessor)) {
below = graph().unique(new IntegerBelowNode(lessThan2.getX(), lessThan2.getY()));
// swap direction
- BeginNode tmp = falseSucc;
+ AbstractBeginNode tmp = falseSucc;
falseSucc = trueSucc;
trueSucc = tmp;
} else if (lessThan2.getY() == lessThan.getX() && sameDestination(trueSuccessor(), ifNode2.trueSuccessor)) {
@@ -326,7 +326,7 @@
* Check it these two blocks end up at the same place. Meeting at the same merge, or
* deoptimizing in the same way.
*/
- private static boolean sameDestination(BeginNode succ1, BeginNode succ2) {
+ private static boolean sameDestination(AbstractBeginNode succ1, AbstractBeginNode succ2) {
Node next1 = succ1.next();
Node next2 = succ2.next();
if (next1 instanceof EndNode && next2 instanceof EndNode) {
@@ -552,7 +552,7 @@
}
protected void removeThroughFalseBranch(SimplifierTool tool) {
- BeginNode trueBegin = trueSuccessor();
+ AbstractBeginNode trueBegin = trueSuccessor();
graph().removeSplitPropagate(this, trueBegin, tool);
tool.addToWorkList(trueBegin);
}
@@ -702,8 +702,8 @@
List trueEnds = new ArrayList<>(mergePredecessors.size());
Map phiValues = CollectionsFactory.newMap(mergePredecessors.size());
- BeginNode oldFalseSuccessor = falseSuccessor();
- BeginNode oldTrueSuccessor = trueSuccessor();
+ AbstractBeginNode oldFalseSuccessor = falseSuccessor();
+ AbstractBeginNode oldTrueSuccessor = trueSuccessor();
setFalseSuccessor(null);
setTrueSuccessor(null);
@@ -840,7 +840,7 @@
* @param oldMerge the merge being removed
* @param phiValues the values of the phi at the merge, keyed by the merge ends
*/
- private void connectEnds(List ends, Map phiValues, BeginNode successor, MergeNode oldMerge, SimplifierTool tool) {
+ private void connectEnds(List ends, Map phiValues, AbstractBeginNode successor, MergeNode oldMerge, SimplifierTool tool) {
if (!ends.isEmpty()) {
if (ends.size() == 1) {
AbstractEndNode end = ends.get(0);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -37,8 +37,8 @@
private static final double EXCEPTION_PROBA = 1e-5;
- @Successor BeginNode next;
- @Successor BeginNode exceptionEdge;
+ @Successor AbstractBeginNode next;
+ @Successor AbstractBeginNode exceptionEdge;
@Input(InputType.Extension) CallTargetNode callTarget;
@OptionalInput(InputType.State) FrameState stateDuring;
@OptionalInput(InputType.State) FrameState stateAfter;
@@ -48,7 +48,7 @@
protected boolean useForInlining;
protected double exceptionProbability;
- public InvokeWithExceptionNode(CallTargetNode callTarget, BeginNode exceptionEdge, int bci) {
+ public InvokeWithExceptionNode(CallTargetNode callTarget, AbstractBeginNode exceptionEdge, int bci) {
super(callTarget.returnStamp());
this.exceptionEdge = exceptionEdge;
this.bci = bci;
@@ -58,20 +58,20 @@
this.exceptionProbability = EXCEPTION_PROBA;
}
- public BeginNode exceptionEdge() {
+ public AbstractBeginNode exceptionEdge() {
return exceptionEdge;
}
- public void setExceptionEdge(BeginNode x) {
+ public void setExceptionEdge(AbstractBeginNode x) {
updatePredecessor(exceptionEdge, x);
exceptionEdge = x;
}
- public BeginNode next() {
+ public AbstractBeginNode next() {
return next;
}
- public void setNext(BeginNode x) {
+ public void setNext(AbstractBeginNode x) {
updatePredecessor(next, x);
next = x;
}
@@ -164,7 +164,7 @@
}
public void killExceptionEdge() {
- BeginNode edge = exceptionEdge();
+ AbstractBeginNode edge = exceptionEdge();
setExceptionEdge(null);
GraphUtil.killCFG(edge);
}
@@ -201,7 +201,7 @@
}
@Override
- public double probability(BeginNode successor) {
+ public double probability(AbstractBeginNode successor) {
return successor == next ? 1 - exceptionProbability : exceptionProbability;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/KillingBeginNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/KillingBeginNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/KillingBeginNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -27,7 +27,7 @@
import com.oracle.graal.nodes.extended.*;
@NodeInfo(allowedUsageTypes = {InputType.Memory})
-public class KillingBeginNode extends BeginNode implements MemoryCheckpoint.Single {
+public class KillingBeginNode extends AbstractBeginNode implements MemoryCheckpoint.Single {
protected LocationIdentity locationIdentity;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopBeginNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -183,7 +183,7 @@
canonicalizePhis(tool);
}
- public boolean isLoopExit(BeginNode begin) {
+ public boolean isLoopExit(AbstractBeginNode begin) {
return begin instanceof LoopExitNode && ((LoopExitNode) begin).loopBegin() == this;
}
@@ -191,7 +191,7 @@
for (LoopExitNode loopexit : loopExits().snapshot()) {
loopexit.removeProxies();
FrameState loopStateAfter = loopexit.stateAfter();
- graph().replaceFixedWithFixed(loopexit, graph().add(new BeginNode()));
+ graph().replaceFixedWithFixed(loopexit, graph().add(new AbstractBeginNode()));
if (loopStateAfter != null && loopStateAfter.isAlive() && loopStateAfter.hasNoUsages()) {
GraphUtil.killWithUnusedFloatingInputs(loopStateAfter);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopExitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -43,8 +43,8 @@
@Override
public void simplify(SimplifierTool tool) {
Node prev = this.predecessor();
- while (prev.getClass() == BeginNode.class && prev.hasNoUsages()) {
- BeginNode begin = (BeginNode) prev;
+ while (prev.getClass() == AbstractBeginNode.class && prev.hasNoUsages()) {
+ AbstractBeginNode begin = (AbstractBeginNode) prev;
prev = prev.predecessor();
graph().removeFixed(begin);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ProxyNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -36,9 +36,9 @@
@NodeInfo
public abstract class ProxyNode extends FloatingNode implements IterableNodeType, ValueNumberable {
- @Input(InputType.Association) BeginNode proxyPoint;
+ @Input(InputType.Association) AbstractBeginNode proxyPoint;
- public ProxyNode(Stamp stamp, BeginNode proxyPoint) {
+ public ProxyNode(Stamp stamp, AbstractBeginNode proxyPoint) {
super(stamp);
assert proxyPoint != null;
this.proxyPoint = proxyPoint;
@@ -46,7 +46,7 @@
public abstract ValueNode value();
- public BeginNode proxyPoint() {
+ public AbstractBeginNode proxyPoint() {
return proxyPoint;
}
@@ -58,11 +58,11 @@
return super.verify();
}
- public static ValueProxyNode forValue(ValueNode value, BeginNode exit, StructuredGraph graph) {
+ public static ValueProxyNode forValue(ValueNode value, AbstractBeginNode exit, StructuredGraph graph) {
return graph.unique(new ValueProxyNode(value, exit));
}
- public static GuardProxyNode forGuard(GuardingNode value, BeginNode exit, StructuredGraph graph) {
+ public static GuardProxyNode forGuard(GuardingNode value, AbstractBeginNode exit, StructuredGraph graph) {
return graph.unique(new GuardProxyNode(value, exit));
}
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Wed Jan 28 00:50:31 2015 +0100
@@ -94,14 +94,14 @@
private boolean hasValueProxies = true;
/**
- * Creates a new Graph containing a single {@link BeginNode} as the {@link #start() start} node.
+ * Creates a new Graph containing a single {@link AbstractBeginNode} as the {@link #start() start} node.
*/
public StructuredGraph() {
this(null, null);
}
/**
- * Creates a new Graph containing a single {@link BeginNode} as the {@link #start() start} node.
+ * Creates a new Graph containing a single {@link AbstractBeginNode} as the {@link #start() start} node.
*/
public StructuredGraph(String name, ResolvedJavaMethod method) {
this(name, method, uniqueGraphIds.incrementAndGet(), INVOCATION_ENTRY_BCI);
@@ -285,8 +285,8 @@
*/
public void removeFixed(FixedWithNextNode node) {
assert node != null;
- if (node instanceof BeginNode) {
- ((BeginNode) node).prepareDelete();
+ if (node instanceof AbstractBeginNode) {
+ ((AbstractBeginNode) node).prepareDelete();
}
assert node.hasNoUsages() : node + " " + node.usages();
GraphUtil.unlinkFixedNode(node);
@@ -321,7 +321,7 @@
node.safeDelete();
}
- public void removeSplit(ControlSplitNode node, BeginNode survivingSuccessor) {
+ public void removeSplit(ControlSplitNode node, AbstractBeginNode survivingSuccessor) {
assert node != null;
assert node.hasNoUsages();
assert survivingSuccessor != null;
@@ -330,11 +330,11 @@
node.safeDelete();
}
- public void removeSplitPropagate(ControlSplitNode node, BeginNode survivingSuccessor) {
+ public void removeSplitPropagate(ControlSplitNode node, AbstractBeginNode survivingSuccessor) {
removeSplitPropagate(node, survivingSuccessor, null);
}
- public void removeSplitPropagate(ControlSplitNode node, BeginNode survivingSuccessor, SimplifierTool tool) {
+ public void removeSplitPropagate(ControlSplitNode node, AbstractBeginNode survivingSuccessor, SimplifierTool tool) {
assert node != null;
assert node.hasNoUsages();
assert survivingSuccessor != null;
@@ -351,7 +351,7 @@
}
}
- public void replaceSplit(ControlSplitNode node, Node replacement, BeginNode survivingSuccessor) {
+ public void replaceSplit(ControlSplitNode node, Node replacement, AbstractBeginNode survivingSuccessor) {
if (replacement instanceof FixedWithNextNode) {
replaceSplitWithFixed(node, (FixedWithNextNode) replacement, survivingSuccessor);
} else {
@@ -361,7 +361,7 @@
}
}
- public void replaceSplitWithFixed(ControlSplitNode node, FixedWithNextNode replacement, BeginNode survivingSuccessor) {
+ public void replaceSplitWithFixed(ControlSplitNode node, FixedWithNextNode replacement, AbstractBeginNode survivingSuccessor) {
assert node != null && replacement != null && node.isAlive() && replacement.isAlive() : "cannot replace " + node + " with " + replacement;
assert survivingSuccessor != null;
node.clearSuccessors();
@@ -369,7 +369,7 @@
node.replaceAndDelete(replacement);
}
- public void replaceSplitWithFloating(ControlSplitNode node, FloatingNode replacement, BeginNode survivingSuccessor) {
+ public void replaceSplitWithFloating(ControlSplitNode node, FloatingNode replacement, AbstractBeginNode survivingSuccessor) {
assert node != null && replacement != null && node.isAlive() && replacement.isAlive() : "cannot replace " + node + " with " + replacement;
assert survivingSuccessor != null;
node.clearSuccessors();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -32,7 +32,7 @@
@Input ValueNode value;
- public ValueProxyNode(ValueNode value, BeginNode proxyPoint) {
+ public ValueProxyNode(ValueNode value, AbstractBeginNode proxyPoint) {
super(value.stamp(), proxyPoint);
this.value = value;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Wed Jan 28 00:50:31 2015 +0100
@@ -30,7 +30,7 @@
public final class Block extends AbstractBlockBase {
- protected final BeginNode beginNode;
+ protected final AbstractBeginNode beginNode;
protected FixedNode endNode;
@@ -39,11 +39,11 @@
protected Block postdominator;
- protected Block(BeginNode node) {
+ protected Block(AbstractBeginNode node) {
this.beginNode = node;
}
- public BeginNode getBeginNode() {
+ public AbstractBeginNode getBeginNode() {
return beginNode;
}
@@ -122,7 +122,7 @@
} else {
cur = ((FixedWithNextNode) cur).next();
}
- assert !(cur instanceof BeginNode);
+ assert !(cur instanceof AbstractBeginNode);
return result;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java Wed Jan 28 00:50:31 2015 +0100
@@ -130,7 +130,7 @@
Node last;
// assign proxies of a loop exit to this block
- if (cur instanceof BeginNode) {
+ if (cur instanceof AbstractBeginNode) {
for (Node usage : cur.usages()) {
if (usage instanceof ProxyNode) {
nodeToBlock.set(usage, block);
@@ -151,7 +151,7 @@
last = cur;
cur = cur.successors().first();
- } while (cur != null && !(cur instanceof BeginNode));
+ } while (cur != null && !(cur instanceof AbstractBeginNode));
block.endNode = (FixedNode) last;
}
@@ -159,7 +159,7 @@
private void identifyBlocks() {
// Find all block headers
int numBlocks = 0;
- for (BeginNode begin : graph.getNodes(BeginNode.class)) {
+ for (AbstractBeginNode begin : graph.getNodes(AbstractBeginNode.class)) {
Block block = new Block(begin);
numBlocks++;
identifyBlock(block);
@@ -273,7 +273,7 @@
for (Block b : loop.getBlocks()) {
for (Block sux : b.getSuccessors()) {
if (sux.loop != loop) {
- BeginNode begin = sux.getBeginNode();
+ AbstractBeginNode begin = sux.getBeginNode();
if (!(begin instanceof LoopExitNode && ((LoopExitNode) begin).loopBegin() == loopBegin)) {
Debug.log("Unexpected loop exit with %s, including whole branch in the loop", sux);
unexpected.add(sux);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IntegerSwitchNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -41,7 +41,7 @@
protected final int[] keys;
- public IntegerSwitchNode(ValueNode value, BeginNode[] successors, int[] keys, double[] keyProbabilities, int[] keySuccessors) {
+ public IntegerSwitchNode(ValueNode value, AbstractBeginNode[] successors, int[] keys, double[] keyProbabilities, int[] keySuccessors) {
super(value, successors, keySuccessors, keyProbabilities);
assert keySuccessors.length == keys.length + 1;
assert keySuccessors.length == keyProbabilities.length;
@@ -58,7 +58,7 @@
}
public IntegerSwitchNode(ValueNode value, int successorCount, int[] keys, double[] keyProbabilities, int[] keySuccessors) {
- this(value, new BeginNode[successorCount], keys, keyProbabilities, keySuccessors);
+ this(value, new AbstractBeginNode[successorCount], keys, keyProbabilities, keySuccessors);
}
@Override
@@ -130,7 +130,7 @@
tool.addToWorkList(defaultSuccessor());
graph().removeSplitPropagate(this, defaultSuccessor());
} else if (validKeys != keys.length) {
- ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount());
+ ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount());
int[] newKeys = new int[validKeys];
int[] newKeySuccessors = new int[validKeys + 1];
double[] newKeyProbabilities = new double[validKeys + 1];
@@ -163,14 +163,14 @@
}
for (int i = 0; i < blockSuccessorCount(); i++) {
- BeginNode successor = blockSuccessor(i);
+ AbstractBeginNode successor = blockSuccessor(i);
if (!newSuccessors.contains(successor)) {
tool.deleteBranch(successor);
}
setBlockSuccessor(i, null);
}
- BeginNode[] successorsArray = newSuccessors.toArray(new BeginNode[newSuccessors.size()]);
+ AbstractBeginNode[] successorsArray = newSuccessors.toArray(new AbstractBeginNode[newSuccessors.size()]);
IntegerSwitchNode newSwitch = graph().add(new IntegerSwitchNode(value(), successorsArray, newKeys, newKeyProbabilities, newKeySuccessors));
((FixedWithNextNode) predecessor()).setNext(newSwitch);
GraphUtil.killWithUnusedFloatingInputs(this);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -37,7 +37,7 @@
@NodeInfo
public abstract class SwitchNode extends ControlSplitNode {
- @Successor protected NodeSuccessorList successors;
+ @Successor protected NodeSuccessorList successors;
@Input protected ValueNode value;
// do not change the contents of these arrays:
@@ -50,7 +50,7 @@
* @param value the instruction that provides the value to be switched over
* @param successors the list of successors of this switch
*/
- public SwitchNode(ValueNode value, BeginNode[] successors, int[] keySuccessors, double[] keyProbabilities) {
+ public SwitchNode(ValueNode value, AbstractBeginNode[] successors, int[] keySuccessors, double[] keyProbabilities) {
super(StampFactory.forVoid());
assert value.stamp().getStackKind().isNumericInteger() || value.stamp() instanceof AbstractPointerStamp : value.stamp() + " key not supported by SwitchNode";
assert keySuccessors.length == keyProbabilities.length;
@@ -72,7 +72,7 @@
}
@Override
- public double probability(BeginNode successor) {
+ public double probability(AbstractBeginNode successor) {
double sum = 0;
for (int i = 0; i < keySuccessors.length; i++) {
if (successors.get(keySuccessors[i]) == successor) {
@@ -117,7 +117,7 @@
/**
* Returns the successor for the key at the given index.
*/
- public BeginNode keySuccessor(int i) {
+ public AbstractBeginNode keySuccessor(int i) {
return successors.get(keySuccessors[i]);
}
@@ -135,11 +135,11 @@
return keySuccessors[keySuccessors.length - 1];
}
- public BeginNode blockSuccessor(int i) {
+ public AbstractBeginNode blockSuccessor(int i) {
return successors.get(i);
}
- public void setBlockSuccessor(int i, BeginNode s) {
+ public void setBlockSuccessor(int i, AbstractBeginNode s) {
successors.set(i, s);
}
@@ -152,7 +152,7 @@
*
* @return the default successor
*/
- public BeginNode defaultSuccessor() {
+ public AbstractBeginNode defaultSuccessor() {
if (defaultSuccessorIndex() == -1) {
throw new GraalInternalError("unexpected");
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -91,7 +91,7 @@
@Override
public void virtualize(VirtualizerTool tool) {
- if (anchored != null && !(anchored instanceof BeginNode)) {
+ if (anchored != null && !(anchored instanceof AbstractBeginNode)) {
State state = tool.getObjectState(anchored);
if (state == null || state.getState() != EscapeState.Virtual) {
return;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -53,7 +53,7 @@
* deopts can float in between the begin node and the load exception node.
*/
LocationIdentity locationsKilledByInvoke = ((InvokeWithExceptionNode) predecessor()).getLocationIdentity();
- BeginNode entry = graph().add(new KillingBeginNode(locationsKilledByInvoke));
+ AbstractBeginNode entry = graph().add(new KillingBeginNode(locationsKilledByInvoke));
LoadExceptionObjectNode loadException = graph().add(new LoadExceptionObjectNode(stamp()));
loadException.setStateAfter(stateAfter());
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -185,7 +185,7 @@
*/
LogicNode condition = graph().unique(new InstanceOfNode(singleImplementor, receiver, getProfile()));
GuardNode guard = graph().unique(
- new GuardNode(condition, BeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile, false,
+ new GuardNode(condition, AbstractBeginNode.prevBegin(invoke().asNode()), DeoptimizationReason.OptimizedTypeCheckViolated, DeoptimizationAction.InvalidateRecompile, false,
JavaConstant.NULL_POINTER));
PiNode piNode = graph().unique(new PiNode(receiver, StampFactory.declaredNonNull(singleImplementor), guard));
arguments().set(0, piNode);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeSwitchNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -42,7 +42,7 @@
protected final ResolvedJavaType[] keys;
- public TypeSwitchNode(ValueNode value, BeginNode[] successors, ResolvedJavaType[] keys, double[] keyProbabilities, int[] keySuccessors) {
+ public TypeSwitchNode(ValueNode value, AbstractBeginNode[] successors, ResolvedJavaType[] keys, double[] keyProbabilities, int[] keySuccessors) {
super(value, successors, keySuccessors, keyProbabilities);
assert successors.length <= keys.length + 1;
assert keySuccessors.length == keyProbabilities.length;
@@ -150,7 +150,7 @@
tool.addToWorkList(defaultSuccessor());
graph().removeSplitPropagate(this, defaultSuccessor());
} else if (validKeys != keys.length) {
- ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount());
+ ArrayList newSuccessors = new ArrayList<>(blockSuccessorCount());
ResolvedJavaType[] newKeys = new ResolvedJavaType[validKeys];
int[] newKeySuccessors = new int[validKeys + 1];
double[] newKeyProbabilities = new double[validKeys + 1];
@@ -183,14 +183,14 @@
}
for (int i = 0; i < blockSuccessorCount(); i++) {
- BeginNode successor = blockSuccessor(i);
+ AbstractBeginNode successor = blockSuccessor(i);
if (!newSuccessors.contains(successor)) {
tool.deleteBranch(successor);
}
setBlockSuccessor(i, null);
}
- BeginNode[] successorsArray = newSuccessors.toArray(new BeginNode[newSuccessors.size()]);
+ AbstractBeginNode[] successorsArray = newSuccessors.toArray(new AbstractBeginNode[newSuccessors.size()]);
TypeSwitchNode newSwitch = graph().add(new TypeSwitchNode(value(), successorsArray, newKeys, newKeyProbabilities, newKeySuccessors));
((FixedWithNextNode) predecessor()).setNext(newSwitch);
GraphUtil.killWithUnusedFloatingInputs(this);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/NodeLIRBuilderTool.java
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/NodeLIRBuilderTool.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/NodeLIRBuilderTool.java Wed Jan 28 00:50:31 2015 +0100
@@ -67,7 +67,7 @@
LIRGeneratorTool getLIRGeneratorTool();
- void emitOverflowCheckBranch(BeginNode overflowSuccessor, BeginNode next, Stamp compareStamp, double probability);
+ void emitOverflowCheckBranch(AbstractBeginNode overflowSuccessor, AbstractBeginNode next, Stamp compareStamp, double probability);
Value[] visitInvokeArguments(CallingConvention cc, Collection arguments);
diff -r b1c03c2bfa40 -r 480bd3b1adcd 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 Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Wed Jan 28 00:50:31 2015 +0100
@@ -187,7 +187,7 @@
if (vpn.isDeleted()) {
return;
}
- BeginNode proxyPoint = vpn.proxyPoint();
+ AbstractBeginNode proxyPoint = vpn.proxyPoint();
if (proxyPoint instanceof LoopExitNode) {
LoopExitNode exit = (LoopExitNode) proxyPoint;
LoopBeginNode loopBegin = exit.loopBegin();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -405,7 +405,7 @@
}
}
- private void registerControlSplitInfo(Node pred, BeginNode begin) {
+ private void registerControlSplitInfo(Node pred, AbstractBeginNode begin) {
assert pred != null && begin != null;
/*
* We does not create value proxies for values it may connect accross loop exit node so
@@ -640,8 +640,8 @@
@Override
protected void node(FixedNode node) {
- if (node instanceof BeginNode) {
- BeginNode begin = (BeginNode) node;
+ if (node instanceof AbstractBeginNode) {
+ AbstractBeginNode begin = (AbstractBeginNode) node;
Node pred = node.predecessor();
if (pred != null) {
@@ -694,7 +694,7 @@
replacementAnchor = searchAnchor(GraphUtil.unproxify(object), type);
}
if (replacementAnchor == null) {
- replacementAnchor = BeginNode.prevBegin(checkCast);
+ replacementAnchor = AbstractBeginNode.prevBegin(checkCast);
}
PiNode piNode;
if (isNull) {
@@ -730,7 +730,7 @@
LogicNode replacement = null;
GuardingNode replacementAnchor = null;
- BeginNode survivingSuccessor = null;
+ AbstractBeginNode survivingSuccessor = null;
if (state.trueConditions.containsKey(compare)) {
replacement = trueConstant;
replacementAnchor = state.trueConditions.get(compare);
@@ -752,7 +752,7 @@
}
if (replacement != null) {
- if (replacementAnchor != null && !(replacementAnchor instanceof BeginNode)) {
+ if (replacementAnchor != null && !(replacementAnchor instanceof AbstractBeginNode)) {
ValueAnchorNode anchor = graph.add(new ValueAnchorNode(replacementAnchor.asNode()));
graph.addBeforeFixed(ifNode, anchor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConvertDeoptimizeToGuardPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -51,8 +51,8 @@
public class ConvertDeoptimizeToGuardPhase extends Phase {
private SimplifierTool simplifierTool = GraphUtil.getDefaultSimplifier(null, null, null, false);
- private static BeginNode findBeginNode(FixedNode startNode) {
- return GraphUtil.predecessorIterable(startNode).filter(BeginNode.class).first();
+ private static AbstractBeginNode findBeginNode(FixedNode startNode) {
+ return GraphUtil.predecessorIterable(startNode).filter(AbstractBeginNode.class).first();
}
@Override
@@ -63,12 +63,12 @@
}
for (DeoptimizeNode d : graph.getNodes(DeoptimizeNode.class)) {
assert d.isAlive();
- visitDeoptBegin(BeginNode.prevBegin(d), d.action(), d.reason(), graph);
+ visitDeoptBegin(AbstractBeginNode.prevBegin(d), d.action(), d.reason(), graph);
}
for (FixedGuardNode fixedGuard : graph.getNodes(FixedGuardNode.class)) {
- BeginNode pred = BeginNode.prevBegin(fixedGuard);
+ AbstractBeginNode pred = AbstractBeginNode.prevBegin(fixedGuard);
if (pred instanceof MergeNode) {
MergeNode merge = (MergeNode) pred;
if (fixedGuard.condition() instanceof CompareNode) {
@@ -96,7 +96,7 @@
}
if (xs[i] instanceof PrimitiveConstant && ys[i] instanceof PrimitiveConstant &&
compare.condition().foldCondition(xs[i], ys[i], null, compare.unorderedIsTrue()) == fixedGuard.isNegated()) {
- visitDeoptBegin(BeginNode.prevBegin(mergePredecessor), fixedGuard.getAction(), fixedGuard.getReason(), graph);
+ visitDeoptBegin(AbstractBeginNode.prevBegin(mergePredecessor), fixedGuard.getAction(), fixedGuard.getReason(), graph);
}
}
}
@@ -106,27 +106,27 @@
new DeadCodeEliminationPhase(Optional).apply(graph);
}
- private void visitDeoptBegin(BeginNode deoptBegin, DeoptimizationAction deoptAction, DeoptimizationReason deoptReason, StructuredGraph graph) {
+ private void visitDeoptBegin(AbstractBeginNode deoptBegin, DeoptimizationAction deoptAction, DeoptimizationReason deoptReason, StructuredGraph graph) {
if (deoptBegin instanceof MergeNode) {
MergeNode mergeNode = (MergeNode) deoptBegin;
Debug.log("Visiting %s", mergeNode);
FixedNode next = mergeNode.next();
while (mergeNode.isAlive()) {
AbstractEndNode end = mergeNode.forwardEnds().first();
- BeginNode newBeginNode = findBeginNode(end);
+ AbstractBeginNode newBeginNode = findBeginNode(end);
visitDeoptBegin(newBeginNode, deoptAction, deoptReason, graph);
}
assert next.isAlive();
- BeginNode newBeginNode = findBeginNode(next);
+ AbstractBeginNode newBeginNode = findBeginNode(next);
visitDeoptBegin(newBeginNode, deoptAction, deoptReason, graph);
return;
} else if (deoptBegin.predecessor() instanceof IfNode) {
IfNode ifNode = (IfNode) deoptBegin.predecessor();
- BeginNode otherBegin = ifNode.trueSuccessor();
+ AbstractBeginNode otherBegin = ifNode.trueSuccessor();
LogicNode conditionNode = ifNode.condition();
FixedGuardNode guard = graph.add(new FixedGuardNode(conditionNode, deoptReason, deoptAction, deoptBegin == ifNode.trueSuccessor()));
FixedWithNextNode pred = (FixedWithNextNode) ifNode.predecessor();
- BeginNode survivingSuccessor;
+ AbstractBeginNode survivingSuccessor;
if (deoptBegin == ifNode.trueSuccessor()) {
survivingSuccessor = ifNode.falseSuccessor();
} else {
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ExpandLogicPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -55,8 +55,8 @@
}
private static void processIf(LogicNode x, boolean xNegated, LogicNode y, boolean yNegated, IfNode ifNode, double shortCircuitProbability) {
- BeginNode trueTarget = ifNode.trueSuccessor();
- BeginNode falseTarget = ifNode.falseSuccessor();
+ AbstractBeginNode trueTarget = ifNode.trueSuccessor();
+ AbstractBeginNode falseTarget = ifNode.falseSuccessor();
double firstIfProbability = shortCircuitProbability;
/*
* P(Y | not(X)) = P(Y inter not(X)) / P(not(X)) = (P(X union Y) - P(X)) / (1 - P(X))
@@ -78,9 +78,9 @@
EndNode secondTrueEnd = graph.add(new EndNode());
trueTargetMerge.addForwardEnd(firstTrueEnd);
trueTargetMerge.addForwardEnd(secondTrueEnd);
- BeginNode firstTrueTarget = BeginNode.begin(firstTrueEnd);
- BeginNode secondTrueTarget = BeginNode.begin(secondTrueEnd);
- BeginNode secondIf = BeginNode.begin(graph.add(new IfNode(y, yNegated ? falseTarget : secondTrueTarget, yNegated ? secondTrueTarget : falseTarget, secondIfProbability)));
+ AbstractBeginNode firstTrueTarget = AbstractBeginNode.begin(firstTrueEnd);
+ AbstractBeginNode secondTrueTarget = AbstractBeginNode.begin(secondTrueEnd);
+ AbstractBeginNode secondIf = AbstractBeginNode.begin(graph.add(new IfNode(y, yNegated ? falseTarget : secondTrueTarget, yNegated ? secondTrueTarget : falseTarget, secondIfProbability)));
IfNode firstIf = graph.add(new IfNode(x, xNegated ? secondIf : firstTrueTarget, xNegated ? firstTrueTarget : secondIf, firstIfProbability));
ifNode.replaceAtPredecessor(firstIf);
ifNode.safeDelete();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -246,7 +246,7 @@
}
@Override
- protected Set afterSplit(BeginNode node, Set oldState) {
+ protected Set afterSplit(AbstractBeginNode node, Set oldState) {
return CollectionsFactory.newSet(oldState);
}
@@ -351,7 +351,7 @@
}
@Override
- protected MemoryMapImpl afterSplit(BeginNode node, MemoryMapImpl oldState) {
+ protected MemoryMapImpl afterSplit(AbstractBeginNode node, MemoryMapImpl oldState) {
MemoryMapImpl result = new MemoryMapImpl(oldState);
if (node.predecessor() instanceof InvokeWithExceptionNode) {
/*
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FrameStateAssignmentPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -94,7 +94,7 @@
}
@Override
- protected FrameState afterSplit(BeginNode node, FrameState oldState) {
+ protected FrameState afterSplit(AbstractBeginNode node, FrameState oldState) {
return oldState;
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -161,12 +161,12 @@
private void lowerToIf(GuardNode guard) {
StructuredGraph graph = guard.graph();
- BeginNode fastPath = graph.add(new BeginNode());
+ AbstractBeginNode fastPath = graph.add(new AbstractBeginNode());
@SuppressWarnings("deprecation")
DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason(), useGuardIdAsDebugId ? guard.getId() : 0, guard.getSpeculation(), null));
- BeginNode deoptBranch = BeginNode.begin(deopt);
- BeginNode trueSuccessor;
- BeginNode falseSuccessor;
+ AbstractBeginNode deoptBranch = AbstractBeginNode.begin(deopt);
+ AbstractBeginNode trueSuccessor;
+ AbstractBeginNode falseSuccessor;
insertLoopExits(deopt);
if (guard.isNegated()) {
trueSuccessor = deoptBranch;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -319,7 +319,7 @@
if (loweringTool.guardAnchor.asNode().isDeleted()) {
// TODO nextNode could be deleted but this is not currently supported
assert nextNode.isAlive();
- loweringTool.guardAnchor = BeginNode.prevBegin(nextNode);
+ loweringTool.guardAnchor = AbstractBeginNode.prevBegin(nextNode);
}
assert checkPostNodeLowering(node, loweringTool, preLoweringMark, unscheduledUsages);
}
@@ -336,7 +336,7 @@
// FixedWithNextNode is followed by some kind of BeginNode.
// For example the when a FixedGuard followed by a loop exit is lowered to a
// control-split + deopt.
- BeginNode begin = node.graph().add(new BeginNode());
+ AbstractBeginNode begin = node.graph().add(new AbstractBeginNode());
nextLastFixed.replaceFirstSuccessor(nextNode, begin);
begin.setNext(nextNode);
nextLastFixed = begin;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/OptimizeGuardAnchorsPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/OptimizeGuardAnchorsPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/OptimizeGuardAnchorsPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -55,11 +55,11 @@
@Override
protected void run(StructuredGraph graph) {
LazyCFG cfg = new LazyCFG(graph);
- for (BeginNode begin : graph.getNodes(BeginNode.class)) {
+ for (AbstractBeginNode begin : graph.getNodes(AbstractBeginNode.class)) {
if (!(begin instanceof StartNode || begin.predecessor() instanceof ControlSplitNode)) {
NodeIterable guards = begin.guards();
if (guards.isNotEmpty()) {
- BeginNode newAnchor = computeOptimalAnchor(cfg.get(), begin);
+ AbstractBeginNode newAnchor = computeOptimalAnchor(cfg.get(), begin);
// newAnchor == begin is possible because postdominator computation assumes that
// loops never end
if (newAnchor != begin) {
@@ -76,14 +76,14 @@
}
}
- public static BeginNode getOptimalAnchor(LazyCFG cfg, BeginNode begin) {
+ public static AbstractBeginNode getOptimalAnchor(LazyCFG cfg, AbstractBeginNode begin) {
if (begin instanceof StartNode || begin.predecessor() instanceof ControlSplitNode) {
return begin;
}
return computeOptimalAnchor(cfg.get(), begin);
}
- private static BeginNode computeOptimalAnchor(ControlFlowGraph cfg, BeginNode begin) {
+ private static AbstractBeginNode computeOptimalAnchor(ControlFlowGraph cfg, AbstractBeginNode begin) {
Block anchor = cfg.blockFor(begin);
while (anchor.getDominator() != null && anchor.getDominator().getPostdominator() == anchor) {
anchor = anchor.getDominator();
@@ -92,7 +92,7 @@
}
private static void optimizeAtControlSplit(ControlSplitNode controlSplit, LazyCFG cfg) {
- BeginNode successor = findMinimumUsagesSuccessor(controlSplit);
+ AbstractBeginNode successor = findMinimumUsagesSuccessor(controlSplit);
int successorCount = controlSplit.successors().count();
List otherGuards = new ArrayList<>(successorCount - 1);
for (GuardNode guard : successor.guards().snapshot()) {
@@ -109,7 +109,7 @@
}
if (otherGuards.size() == successorCount - 1) {
- BeginNode anchor = computeOptimalAnchor(cfg.get(), BeginNode.prevBegin(controlSplit));
+ AbstractBeginNode anchor = computeOptimalAnchor(cfg.get(), AbstractBeginNode.prevBegin(controlSplit));
GuardNode newGuard = controlSplit.graph().unique(new GuardNode(guard.condition(), anchor, guard.reason(), guard.action(), guard.isNegated(), guard.getSpeculation()));
for (GuardNode otherGuard : otherGuards) {
otherGuard.replaceAndDelete(newGuard);
@@ -126,12 +126,12 @@
conditonGuard.getSpeculation().equals(guard.getSpeculation());
}
- private static BeginNode findMinimumUsagesSuccessor(ControlSplitNode controlSplit) {
+ private static AbstractBeginNode findMinimumUsagesSuccessor(ControlSplitNode controlSplit) {
NodePosIterator successors = controlSplit.successors().iterator();
- BeginNode min = (BeginNode) successors.next();
+ AbstractBeginNode min = (AbstractBeginNode) successors.next();
int minUsages = min.getUsageCount();
while (successors.hasNext()) {
- BeginNode successor = (BeginNode) successors.next();
+ AbstractBeginNode successor = (AbstractBeginNode) successors.next();
int count = successor.getUsageCount();
if (count < minUsages) {
minUsages = count;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ProfileCompiledMethodsPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ProfileCompiledMethodsPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ProfileCompiledMethodsPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -127,7 +127,7 @@
private static double getNodeWeight(ValueNode node) {
if (node instanceof MergeNode) {
return ((MergeNode) node).phiPredecessorCount();
- } else if (node instanceof BeginNode || node instanceof AbstractEndNode || node instanceof MonitorIdNode || node instanceof ConstantNode || node instanceof ParameterNode ||
+ } else if (node instanceof AbstractBeginNode || node instanceof AbstractEndNode || node instanceof MonitorIdNode || node instanceof ConstantNode || node instanceof ParameterNode ||
node instanceof CallTargetNode || node instanceof ValueProxy || node instanceof VirtualObjectNode || node instanceof ReinterpretNode) {
return 0;
} else if (node instanceof AccessMonitorNode) {
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -298,7 +298,7 @@
// EndNode
FixedWithNextNode anchorDuplicate = (FixedWithNextNode) duplicates.get(anchor);
// move dependencies on the ValueAnchorNode to the previous BeginNode
- BeginNode prevBegin = BeginNode.prevBegin(forwardEnd);
+ AbstractBeginNode prevBegin = AbstractBeginNode.prevBegin(forwardEnd);
anchorDuplicate.replaceAtUsages(InputType.Guard, prevBegin);
anchorDuplicate.replaceAtUsages(InputType.Anchor, prevBegin);
assert anchorDuplicate.hasNoUsages();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/UseTrappingNullChecksPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -122,16 +122,16 @@
checkPredecessor(deopt, end.predecessor(), deoptimizationReason);
}
}
- } else if (predecessor instanceof BeginNode) {
+ } else if (predecessor instanceof AbstractBeginNode) {
checkPredecessor(deopt, predecessor, deoptimizationReason);
}
}
private static void checkPredecessor(AbstractDeoptimizeNode deopt, Node predecessor, DeoptimizationReason deoptimizationReason) {
Node current = predecessor;
- BeginNode branch = null;
- while (current instanceof BeginNode) {
- branch = (BeginNode) current;
+ AbstractBeginNode branch = null;
+ while (current instanceof AbstractBeginNode) {
+ branch = (AbstractBeginNode) current;
if (branch.anchored().isNotEmpty()) {
// some input of the deopt framestate is anchored to this branch
return;
@@ -159,8 +159,8 @@
metricTrappingNullCheckUnreached.increment();
}
IsNullNode isNullNode = (IsNullNode) condition;
- BeginNode nonTrappingContinuation = ifNode.falseSuccessor();
- BeginNode trappingContinuation = ifNode.trueSuccessor();
+ AbstractBeginNode nonTrappingContinuation = ifNode.falseSuccessor();
+ AbstractBeginNode trappingContinuation = ifNode.trueSuccessor();
NullCheckNode trappingNullCheck = deopt.graph().add(new NullCheckNode(isNullNode.getValue()));
trappingNullCheck.setStateBefore(deopt.stateBefore());
deopt.graph().replaceSplit(ifNode, trappingNullCheck, nonTrappingContinuation);
@@ -171,7 +171,7 @@
* then remove the Begin from the graph.
*/
nonTrappingContinuation.replaceAtUsages(InputType.Guard, trappingNullCheck);
- if (nonTrappingContinuation.getClass() == BeginNode.class) {
+ if (nonTrappingContinuation.getClass() == AbstractBeginNode.class) {
FixedNode next = nonTrappingContinuation.next();
nonTrappingContinuation.clearSuccessors();
trappingNullCheck.setNext(next);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Wed Jan 28 00:50:31 2015 +0100
@@ -265,7 +265,7 @@
}
}
- final BeginNode prevBegin = BeginNode.prevBegin(invokeNode);
+ final AbstractBeginNode prevBegin = AbstractBeginNode.prevBegin(invokeNode);
DuplicationReplacement localReplacement = new DuplicationReplacement() {
public Node replacement(Node node) {
@@ -303,9 +303,9 @@
}
// get rid of memory kill
- BeginNode begin = invokeWithException.next();
+ AbstractBeginNode begin = invokeWithException.next();
if (begin instanceof KillingBeginNode) {
- BeginNode newBegin = new BeginNode();
+ AbstractBeginNode newBegin = new AbstractBeginNode();
graph.addAfterFixed(begin, graph.add(newBegin));
begin.replaceAtUsages(newBegin);
graph.removeFixed(begin);
@@ -458,8 +458,8 @@
}
} else {
FixedNode deoptimizeNode = graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateRecompile, DeoptimizationReason.NotCompiledExceptionHandler));
- if (fixedStateSplit instanceof BeginNode) {
- deoptimizeNode = BeginNode.begin(deoptimizeNode);
+ if (fixedStateSplit instanceof AbstractBeginNode) {
+ deoptimizeNode = AbstractBeginNode.begin(deoptimizeNode);
}
fixedStateSplit.replaceAtPredecessor(deoptimizeNode);
GraphUtil.killCFG(fixedStateSplit);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java Wed Jan 28 00:50:31 2015 +0100
@@ -196,7 +196,7 @@
}
// create one separate block for each invoked method
- BeginNode[] successors = new BeginNode[numberOfMethods + 1];
+ AbstractBeginNode[] successors = new AbstractBeginNode[numberOfMethods + 1];
for (int i = 0; i < numberOfMethods; i++) {
successors[i] = createInvocationBlock(graph, invoke, returnMerge, returnValuePhi, exceptionMerge, exceptionObjectPhi, true);
}
@@ -208,7 +208,7 @@
} else {
unknownTypeSux = graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.TypeCheckedInliningViolated));
}
- successors[successors.length - 1] = BeginNode.begin(unknownTypeSux);
+ successors[successors.length - 1] = AbstractBeginNode.begin(unknownTypeSux);
// replace the invoke exception edge
if (invoke instanceof InvokeWithExceptionNode) {
@@ -234,7 +234,7 @@
// prepare the anchors for the invokes
for (int i = 0; i < numberOfMethods; i++) {
- BeginNode node = successors[i];
+ AbstractBeginNode node = successors[i];
Invoke invokeForInlining = (Invoke) node.next();
ResolvedJavaType commonType;
@@ -330,10 +330,10 @@
private Collection inlineSingleMethod(StructuredGraph graph, MetaAccessProvider metaAccess, Assumptions assumptions, StampProvider stampProvider) {
assert concretes.size() == 1 && inlineableElements.length == 1 && ptypes.size() > 1 && !shouldFallbackToInvoke() && notRecordedTypeProbability == 0;
- BeginNode calleeEntryNode = graph.add(new BeginNode());
+ AbstractBeginNode calleeEntryNode = graph.add(new AbstractBeginNode());
- BeginNode unknownTypeSux = createUnknownTypeSuccessor(graph);
- BeginNode[] successors = new BeginNode[]{calleeEntryNode, unknownTypeSux};
+ AbstractBeginNode unknownTypeSux = createUnknownTypeSuccessor(graph);
+ AbstractBeginNode[] successors = new AbstractBeginNode[]{calleeEntryNode, unknownTypeSux};
createDispatchOnTypeBeforeInvoke(graph, successors, false, metaAccess, stampProvider);
calleeEntryNode.setNext(invoke.asNode());
@@ -341,7 +341,7 @@
return inline(invoke, methodAt(0), inlineableElementAt(0), assumptions, false);
}
- private boolean createDispatchOnTypeBeforeInvoke(StructuredGraph graph, BeginNode[] successors, boolean invokeIsOnlySuccessor, MetaAccessProvider metaAccess, StampProvider stampProvider) {
+ private boolean createDispatchOnTypeBeforeInvoke(StructuredGraph graph, AbstractBeginNode[] successors, boolean invokeIsOnlySuccessor, MetaAccessProvider metaAccess, StampProvider stampProvider) {
assert ptypes.size() >= 1;
ValueNode nonNullReceiver = InliningUtil.nonNullReceiver(invoke);
LoadHubNode hub = graph.unique(new LoadHubNode(stampProvider, nonNullReceiver));
@@ -459,10 +459,10 @@
return costEstimateMethodDispatch < costEstimateTypeDispatch;
}
- private static BeginNode createInvocationBlock(StructuredGraph graph, Invoke invoke, MergeNode returnMerge, PhiNode returnValuePhi, MergeNode exceptionMerge, PhiNode exceptionObjectPhi,
+ private static AbstractBeginNode createInvocationBlock(StructuredGraph graph, Invoke invoke, MergeNode returnMerge, PhiNode returnValuePhi, MergeNode exceptionMerge, PhiNode exceptionObjectPhi,
boolean useForInlining) {
Invoke duplicatedInvoke = duplicateInvokeForInlining(graph, invoke, exceptionMerge, exceptionObjectPhi, useForInlining);
- BeginNode calleeEntryNode = graph.add(new BeginNode());
+ AbstractBeginNode calleeEntryNode = graph.add(new AbstractBeginNode());
calleeEntryNode.setNext(duplicatedInvoke.asNode());
AbstractEndNode endNode = graph.add(new EndNode());
@@ -538,9 +538,9 @@
}
private void devirtualizeWithTypeSwitch(StructuredGraph graph, InvokeKind kind, ResolvedJavaMethod target, MetaAccessProvider metaAccess, StampProvider stampProvider) {
- BeginNode invocationEntry = graph.add(new BeginNode());
- BeginNode unknownTypeSux = createUnknownTypeSuccessor(graph);
- BeginNode[] successors = new BeginNode[]{invocationEntry, unknownTypeSux};
+ AbstractBeginNode invocationEntry = graph.add(new AbstractBeginNode());
+ AbstractBeginNode unknownTypeSux = createUnknownTypeSuccessor(graph);
+ AbstractBeginNode[] successors = new AbstractBeginNode[]{invocationEntry, unknownTypeSux};
createDispatchOnTypeBeforeInvoke(graph, successors, true, metaAccess, stampProvider);
invocationEntry.setNext(invoke.asNode());
@@ -550,8 +550,8 @@
InliningUtil.replaceInvokeCallTarget(invoke, graph, kind, target);
}
- private static BeginNode createUnknownTypeSuccessor(StructuredGraph graph) {
- return BeginNode.begin(graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.TypeCheckedInliningViolated)));
+ private static AbstractBeginNode createUnknownTypeSuccessor(StructuredGraph graph) {
+ return AbstractBeginNode.begin(graph.add(new DeoptimizeNode(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.TypeCheckedInliningViolated)));
}
@Override
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/ComputeInliningRelevance.java
--- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/ComputeInliningRelevance.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/ComputeInliningRelevance.java Wed Jan 28 00:50:31 2015 +0100
@@ -278,7 +278,7 @@
int pathBeginCount = pathBeginNodes.size();
for (Node sux : controlSplit.successors()) {
- double probability = controlSplit.probability((BeginNode) sux);
+ double probability = controlSplit.probability((AbstractBeginNode) sux);
if (probability > maxProbability) {
maxProbability = probability;
maxSux = sux;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java Wed Jan 28 00:50:31 2015 +0100
@@ -30,7 +30,7 @@
import com.oracle.graal.nodes.*;
/**
- * Compute probabilities for fixed nodes on the fly and cache them at {@link BeginNode}s.
+ * Compute probabilities for fixed nodes on the fly and cache them at {@link AbstractBeginNode}s.
*/
public class FixedNodeProbabilityCache implements ToDoubleFunction {
@@ -40,7 +40,7 @@
/**
*
- * Given a {@link FixedNode} this method finds the most immediate {@link BeginNode} preceding it
+ * Given a {@link FixedNode} this method finds the most immediate {@link AbstractBeginNode} preceding it
* that either:
*
* - has no predecessor (ie, the begin-node is a merge, in particular a loop-begin, or the
@@ -50,7 +50,7 @@
*
*
*
- * The thus found {@link BeginNode} is equi-probable with the {@link FixedNode} it was obtained
+ * The thus found {@link AbstractBeginNode} is equi-probable with the {@link FixedNode} it was obtained
* from. When computed for the first time (afterwards a cache lookup returns it) that
* probability is computed as follows, again depending on the begin-node's predecessor:
*
@@ -77,7 +77,7 @@
while (true) {
assert current != null;
Node predecessor = current.predecessor();
- if (current instanceof BeginNode) {
+ if (current instanceof AbstractBeginNode) {
if (predecessor == null) {
break;
} else if (predecessor.successors().count() != 1) {
@@ -91,7 +91,7 @@
current = (FixedNode) predecessor;
}
- assert current instanceof BeginNode;
+ assert current instanceof AbstractBeginNode;
Double cachedValue = cache.get(current);
if (cachedValue != null) {
return cachedValue;
@@ -119,7 +119,7 @@
}
} else {
ControlSplitNode split = (ControlSplitNode) current.predecessor();
- probability = split.probability((BeginNode) current) * applyAsDouble(split);
+ probability = split.probability((AbstractBeginNode) current) * applyAsDouble(split);
}
assert !Double.isNaN(probability) && !Double.isInfinite(probability) : current + " " + probability;
cache.put(current, probability);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/MergeableState.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/MergeableState.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/MergeableState.java Wed Jan 28 00:50:31 2015 +0100
@@ -65,7 +65,7 @@
*
* @param node the successor of the control split that is about to be visited
*/
- public void afterSplit(BeginNode node) {
+ public void afterSplit(AbstractBeginNode node) {
// empty default implementation
}
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/PostOrderNodeIterator.java Wed Jan 28 00:50:31 2015 +0100
@@ -43,7 +43,7 @@
public abstract class PostOrderNodeIterator> {
private final NodeBitMap visitedEnds;
- private final Deque nodeQueue;
+ private final Deque nodeQueue;
private final Map nodeStates;
private final FixedNode start;
@@ -110,13 +110,13 @@
for (Node node : successors) {
if (node != null) {
nodeStates.put((FixedNode) node.predecessor(), state);
- nodeQueue.addFirst((BeginNode) node);
+ nodeQueue.addFirst((AbstractBeginNode) node);
}
}
} else {
for (Node node : x.successors()) {
if (node != null) {
- nodeQueue.addFirst((BeginNode) node);
+ nodeQueue.addFirst((AbstractBeginNode) node);
}
}
}
@@ -125,7 +125,7 @@
private FixedNode nextQueuedNode() {
int maxIterations = nodeQueue.size();
while (maxIterations-- > 0) {
- BeginNode node = nodeQueue.removeFirst();
+ AbstractBeginNode node = nodeQueue.removeFirst();
if (node instanceof MergeNode) {
MergeNode merge = (MergeNode) node;
state = nodeStates.get(merge.forwardEndAt(0)).clone();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ReentrantNodeIterator.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ReentrantNodeIterator.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ReentrantNodeIterator.java Wed Jan 28 00:50:31 2015 +0100
@@ -46,7 +46,7 @@
protected abstract StateT merge(MergeNode merge, List states);
- protected abstract StateT afterSplit(BeginNode node, StateT oldState);
+ protected abstract StateT afterSplit(AbstractBeginNode node, StateT oldState);
protected abstract Map processLoop(LoopBeginNode loop, StateT initialState);
@@ -87,7 +87,7 @@
private static Map apply(NodeIteratorClosure closure, FixedNode start, StateT initialState, LoopBeginNode boundary) {
assert start != null;
- Deque nodeQueue = new ArrayDeque<>();
+ Deque nodeQueue = new ArrayDeque<>();
Map blockEndStates = Node.newIdentityMap();
StateT state = initialState;
@@ -153,7 +153,7 @@
continue;
} else {
do {
- BeginNode successor = (BeginNode) successors.next();
+ AbstractBeginNode successor = (AbstractBeginNode) successors.next();
StateT successorState = closure.afterSplit(successor, state);
if (closure.continueIteration(successorState)) {
blockEndStates.put(successor, successorState);
@@ -161,7 +161,7 @@
}
} while (successors.hasNext());
- state = closure.afterSplit((BeginNode) firstSuccessor, state);
+ state = closure.afterSplit((AbstractBeginNode) firstSuccessor, state);
current = closure.continueIteration(state) ? firstSuccessor : null;
continue;
}
@@ -176,7 +176,7 @@
current = nodeQueue.removeFirst();
assert blockEndStates.containsKey(current);
state = blockEndStates.remove(current);
- assert !(current instanceof MergeNode) && current instanceof BeginNode;
+ assert !(current instanceof MergeNode) && current instanceof AbstractBeginNode;
}
} while (true);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/SinglePassNodeIterator.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/SinglePassNodeIterator.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/SinglePassNodeIterator.java Wed Jan 28 00:50:31 2015 +0100
@@ -109,10 +109,10 @@
*
*/
private static final class PathStart {
- private final BeginNode node;
+ private final AbstractBeginNode node;
private final U stateOnEntry;
- private PathStart(BeginNode node, U stateOnEntry) {
+ private PathStart(AbstractBeginNode node, U stateOnEntry) {
this.node = node;
this.stateOnEntry = stateOnEntry;
assert repOK();
@@ -210,13 +210,13 @@
private void queueSuccessors(FixedNode x) {
Iterator iter = x.successors().nonNull().iterator();
if (iter.hasNext()) {
- BeginNode begin = (BeginNode) iter.next();
+ AbstractBeginNode begin = (AbstractBeginNode) iter.next();
// the current state isn't cloned for the first successor
// conceptually, the state is handed over to it
nodeQueue.addFirst(new PathStart<>(begin, state));
}
while (iter.hasNext()) {
- BeginNode begin = (BeginNode) iter.next();
+ AbstractBeginNode begin = (AbstractBeginNode) iter.next();
// for all other successors it is cloned
nodeQueue.addFirst(new PathStart<>(begin, state.clone()));
}
@@ -249,7 +249,7 @@
assert ready : "Not a single-pass iterator after all";
return merge;
} else {
- BeginNode begin = elem.node;
+ AbstractBeginNode begin = elem.node;
assert begin.predecessor() != null;
state = elem.stateOnEntry;
state.afterSplit(begin);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/StatelessPostOrderNodeIterator.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/StatelessPostOrderNodeIterator.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/StatelessPostOrderNodeIterator.java Wed Jan 28 00:50:31 2015 +0100
@@ -36,7 +36,7 @@
public abstract class StatelessPostOrderNodeIterator {
private final NodeBitMap visitedEnds;
- private final Deque nodeQueue;
+ private final Deque nodeQueue;
private final FixedNode start;
public StatelessPostOrderNodeIterator(FixedNode start) {
@@ -76,7 +76,7 @@
controlSplit((ControlSplitNode) current);
for (Node node : current.successors()) {
if (node != null) {
- nodeQueue.addFirst((BeginNode) node);
+ nodeQueue.addFirst((AbstractBeginNode) node);
}
}
current = nodeQueue.pollFirst();
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -251,7 +251,7 @@
}
}
- BeginNode startNode = cfg.getStartBlock().getBeginNode();
+ AbstractBeginNode startNode = cfg.getStartBlock().getBeginNode();
assert startNode instanceof StartNode;
LocationSet accm = foundExcludeNode ? set : excludedLocations;
@@ -771,7 +771,7 @@
// If a FrameState is an outer FrameState this method behaves as if the inner
// FrameState was the actual usage, by recursing.
blocksForUsage(node, unscheduledUsage, closure, strategy);
- } else if (unscheduledUsage instanceof BeginNode) {
+ } else if (unscheduledUsage instanceof AbstractBeginNode) {
// Only FrameStates can be connected to BeginNodes.
if (!(usage instanceof FrameState)) {
throw new SchedulingError(usage.toString());
@@ -1137,7 +1137,7 @@
}
}
- if (instruction instanceof BeginNode) {
+ if (instruction instanceof AbstractBeginNode) {
for (ValueNode inBlock : blockToNodesMap.get(b)) {
if (!visited.isMarked(inBlock)) {
addToEarliestSorting(b, inBlock, sortedInstructions, visited);
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java Wed Jan 28 00:50:31 2015 +0100
@@ -484,7 +484,7 @@
return "-";
}
String prefix;
- if (node instanceof BeginNode && (lir == null && schedule == null)) {
+ if (node instanceof AbstractBeginNode && (lir == null && schedule == null)) {
prefix = "B";
} else if (node instanceof ValueNode) {
ValueNode value = (ValueNode) node;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinter.java
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinter.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinter.java Wed Jan 28 00:50:31 2015 +0100
@@ -173,7 +173,7 @@
printProperty(bit, "true");
}
}
- if (node.getClass() == BeginNode.class) {
+ if (node.getClass() == AbstractBeginNode.class) {
printProperty("shortName", "B");
} else if (node.getClass() == EndNode.class) {
printProperty("shortName", "E");
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CollapseFrameForSingleSideEffectPhase.java
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CollapseFrameForSingleSideEffectPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CollapseFrameForSingleSideEffectPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -68,7 +68,7 @@
return new IterationState(this, sideEffect.asNode(), null, true);
}
- public IterationState addBranch(BeginNode begin) {
+ public IterationState addBranch(AbstractBeginNode begin) {
return new IterationState(this, begin, null, this.invalid);
}
@@ -191,7 +191,7 @@
}
@Override
- protected IterationState afterSplit(BeginNode node, IterationState oldState) {
+ protected IterationState afterSplit(AbstractBeginNode node, IterationState oldState) {
return oldState.addBranch(node);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Wed Jan 28 00:50:31 2015 +0100
@@ -275,7 +275,7 @@
ReadNode memoryRead = createUnsafeRead(graph, load, null);
// An unsafe read must not float outside its block otherwise
// it may float above an explicit null check on its object.
- memoryRead.setGuard(BeginNode.prevBegin(load));
+ memoryRead.setGuard(AbstractBeginNode.prevBegin(load));
graph.replaceFixedWithFixed(load, memoryRead);
}
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java Wed Jan 28 00:50:31 2015 +0100
@@ -246,8 +246,8 @@
* @param trueProbability The estimated probability the the condition is true
*/
public void startIf(LogicNode condition, double trueProbability) {
- BeginNode thenSuccessor = graph.add(new BeginNode());
- BeginNode elseSuccessor = graph.add(new BeginNode());
+ AbstractBeginNode thenSuccessor = graph.add(new AbstractBeginNode());
+ AbstractBeginNode elseSuccessor = graph.add(new AbstractBeginNode());
append(new IfNode(condition, thenSuccessor, elseSuccessor, trueProbability));
lastFixedNode = null;
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Wed Jan 28 00:50:31 2015 +0100
@@ -1100,7 +1100,7 @@
FixedNode firstCFGNode = entryPointNode.next();
StructuredGraph replaceeGraph = replacee.graph();
Map replacements = bind(replaceeGraph, metaAccess, args);
- replacements.put(entryPointNode, BeginNode.prevBegin(replacee));
+ replacements.put(entryPointNode, AbstractBeginNode.prevBegin(replacee));
Map duplicates = replaceeGraph.addDuplicates(nodes, snippet, snippet.getNodeCount(), replacements);
Debug.dump(replaceeGraph, "After inlining snippet %s", snippet.method());
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -83,7 +83,7 @@
}
@Override
- public IntegerExactArithmeticSplitNode createSplit(BeginNode next, BeginNode deopt) {
+ public IntegerExactArithmeticSplitNode createSplit(AbstractBeginNode next, AbstractBeginNode deopt) {
return graph().add(new IntegerAddExactSplitNode(stamp(), getX(), getY(), next, deopt));
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactSplitNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -31,7 +31,7 @@
@NodeInfo
public class IntegerAddExactSplitNode extends IntegerExactArithmeticSplitNode {
- public IntegerAddExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, BeginNode next, BeginNode overflowSuccessor) {
+ public IntegerAddExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, AbstractBeginNode next, AbstractBeginNode overflowSuccessor) {
super(stamp, x, y, next, overflowSuccessor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -27,5 +27,5 @@
interface IntegerExactArithmeticNode extends Lowerable {
- IntegerExactArithmeticSplitNode createSplit(BeginNode next, BeginNode deopt);
+ IntegerExactArithmeticSplitNode createSplit(AbstractBeginNode next, AbstractBeginNode deopt);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticSplitNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -32,12 +32,12 @@
@NodeInfo
public abstract class IntegerExactArithmeticSplitNode extends ControlSplitNode implements LIRLowerable {
- @Successor BeginNode overflowSuccessor;
- @Successor BeginNode next;
+ @Successor AbstractBeginNode overflowSuccessor;
+ @Successor AbstractBeginNode next;
@Input ValueNode x;
@Input ValueNode y;
- public IntegerExactArithmeticSplitNode(Stamp stamp, ValueNode x, ValueNode y, BeginNode next, BeginNode overflowSuccessor) {
+ public IntegerExactArithmeticSplitNode(Stamp stamp, ValueNode x, ValueNode y, AbstractBeginNode next, AbstractBeginNode overflowSuccessor) {
super(stamp);
this.x = x;
this.y = y;
@@ -46,15 +46,15 @@
}
@Override
- public double probability(BeginNode successor) {
+ public double probability(AbstractBeginNode successor) {
return successor == next ? 1 : 0;
}
- public BeginNode getNext() {
+ public AbstractBeginNode getNext() {
return next;
}
- public BeginNode getOverflowSuccessor() {
+ public AbstractBeginNode getOverflowSuccessor() {
return overflowSuccessor;
}
@@ -81,9 +81,9 @@
FixedNode next = previous.next();
previous.setNext(null);
DeoptimizeNode deopt = floatingNode.graph().add(new DeoptimizeNode(DeoptimizationAction.InvalidateReprofile, DeoptimizationReason.ArithmeticException));
- BeginNode normalBegin = floatingNode.graph().add(new BeginNode());
+ AbstractBeginNode normalBegin = floatingNode.graph().add(new AbstractBeginNode());
normalBegin.setNext(next);
- IntegerExactArithmeticSplitNode split = node.createSplit(normalBegin, BeginNode.begin(deopt));
+ IntegerExactArithmeticSplitNode split = node.createSplit(normalBegin, AbstractBeginNode.begin(deopt));
previous.setNext(split);
floatingNode.replaceAndDelete(split);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -80,7 +80,7 @@
}
@Override
- public IntegerExactArithmeticSplitNode createSplit(BeginNode next, BeginNode deopt) {
+ public IntegerExactArithmeticSplitNode createSplit(AbstractBeginNode next, AbstractBeginNode deopt) {
return graph().add(new IntegerMulExactSplitNode(stamp(), getX(), getY(), next, deopt));
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactSplitNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -31,7 +31,7 @@
@NodeInfo
public class IntegerMulExactSplitNode extends IntegerExactArithmeticSplitNode {
- public IntegerMulExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, BeginNode next, BeginNode overflowSuccessor) {
+ public IntegerMulExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, AbstractBeginNode next, AbstractBeginNode overflowSuccessor) {
super(stamp, x, y, next, overflowSuccessor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -84,7 +84,7 @@
}
@Override
- public IntegerExactArithmeticSplitNode createSplit(BeginNode next, BeginNode deopt) {
+ public IntegerExactArithmeticSplitNode createSplit(AbstractBeginNode next, AbstractBeginNode deopt) {
return graph().add(new IntegerSubExactSplitNode(stamp(), getX(), getY(), next, deopt));
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactSplitNode.java
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactSplitNode.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactSplitNode.java Wed Jan 28 00:50:31 2015 +0100
@@ -31,7 +31,7 @@
@NodeInfo
public class IntegerSubExactSplitNode extends IntegerExactArithmeticSplitNode {
- public IntegerSubExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, BeginNode next, BeginNode overflowSuccessor) {
+ public IntegerSubExactSplitNode(Stamp stamp, ValueNode x, ValueNode y, AbstractBeginNode next, AbstractBeginNode overflowSuccessor) {
super(stamp, x, y, next, overflowSuccessor);
}
diff -r b1c03c2bfa40 -r 480bd3b1adcd graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java
--- a/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Tue Jan 27 23:52:31 2015 +0100
+++ b/graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java Wed Jan 28 00:50:31 2015 +0100
@@ -405,7 +405,7 @@
* The read must not float outside its block otherwise it may float above an explicit zero
* check on its base address.
*/
- read.setGuard(BeginNode.prevBegin(invoke.asNode()));
+ read.setGuard(AbstractBeginNode.prevBegin(invoke.asNode()));
return read;
}