src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java
Print this page
*** 140,158 ****
for (Entry<Block, ArrayList<Node>> e : blockToInits.entrySet()) {
Block currentBlock = e.getKey();
ArrayList<Node> nodesInCurrent = e.getValue();
if (nodesInCurrent != null) { // if the list is null, the initializer has already been
// eliminated.
! for (Block d : currentBlock.getDominated()) {
ArrayList<Node> nodesInDominated = blockToInits.get(d);
if (nodesInDominated != null) { // if the list is null, the initializer has
// already been eliminated.
assert nodesInDominated.size() == 1;
Node n = nodesInDominated.iterator().next();
result.add(n);
blockToInits.put(d, null);
}
}
}
}
return result;
}
--- 140,160 ----
for (Entry<Block, ArrayList<Node>> e : blockToInits.entrySet()) {
Block currentBlock = e.getKey();
ArrayList<Node> nodesInCurrent = e.getValue();
if (nodesInCurrent != null) { // if the list is null, the initializer has already been
// eliminated.
! Block d = currentBlock.getFirstDominated();
! while (d != null) {
ArrayList<Node> nodesInDominated = blockToInits.get(d);
if (nodesInDominated != null) { // if the list is null, the initializer has
// already been eliminated.
assert nodesInDominated.size() == 1;
Node n = nodesInDominated.iterator().next();
result.add(n);
blockToInits.put(d, null);
}
+ d = d.getDominatedSibling();
}
}
}
return result;
}
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/phases/aot/EliminateRedundantInitializationPhase.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File