Mercurial > hg > truffle
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 } |