comparison graal/GraalCompiler/src/com/sun/c1x/alloc/LinearScan.java @ 2789:aeccd2af4e9e

Fixes around critical edge split and placeholder removal after goto removal.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 25 May 2011 16:48:28 +0200
parents 79dda81dd337
children 6d14aa4fbf90
comparison
equal deleted inserted replaced
2788:df4c5254c5cc 2789:aeccd2af4e9e
723 // fixed intervals are never live at block boundaries, so 723 // fixed intervals are never live at block boundaries, so
724 // they need not be processed in live sets. 724 // they need not be processed in live sets.
725 // this is checked by these assertions to be sure about it. 725 // this is checked by these assertions to be sure about it.
726 // the entry block may have incoming 726 // the entry block may have incoming
727 // values in registers, which is ok. 727 // values in registers, which is ok.
728 if (!operand.isVariable() /*&& block != ir.startBlock*/) { 728 if (!operand.isVariable() && block != ir.startBlock) {
729 if (isProcessed(operand)) { 729 if (isProcessed(operand)) {
730 assert liveKill.get(operandNumber(operand)) : "using fixed register that is not defined in this block"; 730 assert liveKill.get(operandNumber(operand)) : "using fixed register that is not defined in this block";
731 } 731 }
732 } 732 }
733 } 733 }
809 CiBitMap liveInArgs = new CiBitMap(startBlock.liveIn.size()); 809 CiBitMap liveInArgs = new CiBitMap(startBlock.liveIn.size());
810 if (!startBlock.liveIn.isSame(liveInArgs)) { 810 if (!startBlock.liveIn.isSame(liveInArgs)) {
811 if (C1XOptions.DetailedAsserts) { 811 if (C1XOptions.DetailedAsserts) {
812 reportFailure(numBlocks); 812 reportFailure(numBlocks);
813 } 813 }
814
815 TTY.println("preds=" + startBlock.blockPredecessors().size() + ", succs=" + startBlock.blockSuccessors().size());
814 816
815 // bailout of if this occurs in product mode. 817 // bailout of if this occurs in product mode.
816 throw new CiBailout("liveIn set of first block must be empty"); 818 throw new CiBailout("liveIn set of first block must be empty");
817 } 819 }
818 } 820 }