예제 #1
0
 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();
   node.replaceAtPredecessor(survivingSuccessor);
   node.replaceAtUsagesAndDelete(replacement);
 }
예제 #2
0
 private static boolean isAliveWithoutUsages(FloatingNode node) {
   return node.isAlive() && FlowUtil.lacksUsages(node);
 }
예제 #3
0
 public void replaceFixedWithFloating(FixedWithNextNode node, FloatingNode replacement) {
   assert node != null && replacement != null && node.isAlive() && replacement.isAlive()
       : "cannot replace " + node + " with " + replacement;
   GraphUtil.unlinkFixedNode(node);
   node.replaceAtUsagesAndDelete(replacement);
 }