comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java @ 7326:6939a5af19d5

Be sure to remove framestate of merge when removing empty diamond shape
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 10 Jan 2013 12:03:14 +0100
parents a64cf8797166
children f04a5e46cdd2
comparison
equal deleted inserted replaced
7325:4013a84e1dd0 7326:6939a5af19d5
426 assert merge.usages().isEmpty(); 426 assert merge.usages().isEmpty();
427 originalTrueSuccessor.prepareDelete(); 427 originalTrueSuccessor.prepareDelete();
428 originalFalseSuccessor.prepareDelete(); 428 originalFalseSuccessor.prepareDelete();
429 429
430 FixedNode next = merge.next(); 430 FixedNode next = merge.next();
431 FrameState state = merge.stateAfter();
431 merge.setNext(null); 432 merge.setNext(null);
432 setTrueSuccessor(null); 433 setTrueSuccessor(null);
433 setFalseSuccessor(null); 434 setFalseSuccessor(null);
434 pred.setNext(next); 435 pred.setNext(next);
435 safeDelete(); 436 safeDelete();
436 originalTrueSuccessor.safeDelete(); 437 originalTrueSuccessor.safeDelete();
437 originalFalseSuccessor.safeDelete(); 438 originalFalseSuccessor.safeDelete();
438 merge.safeDelete(); 439 merge.safeDelete();
439 trueEnd.safeDelete(); 440 trueEnd.safeDelete();
440 falseEnd.safeDelete(); 441 falseEnd.safeDelete();
442 if (state != null) {
443 tool.removeIfUnused(state);
444 }
441 tool.addToWorkList(next); 445 tool.addToWorkList(next);
442 } 446 }
443 } 447 }