# HG changeset patch # User Thomas Wuerthinger # Date 1362738208 -3600 # Node ID da10229e5a339fd373c570d9ca152acb3d7289c5 # Parent 191883d1c5637b1c6dc76fb690e354dd32d441a0 Experiment with new LSRA block order. diff -r 191883d1c563 -r da10229e5a33 graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java --- a/graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java Fri Mar 08 11:19:23 2013 +0100 +++ b/graal/com.oracle.graal.alloc/src/com/oracle/graal/alloc/ComputeBlockOrder.java Fri Mar 08 11:23:28 2013 +0100 @@ -55,13 +55,6 @@ private static final int INITIAL_WORKLIST_CAPACITY = 10; /** - * Divisor used for degrading the probability of the current path versus unscheduled paths at a - * merge node when calculating the linear scan order. A high value means that predecessors of - * merge nodes are more likely to be scheduled before the merge node. - */ - private static final int PENALTY_VERSUS_UNSCHEDULED = 10; - - /** * Computes the block order used for the linear scan register allocator. * * @return sorted list of blocks @@ -125,27 +118,7 @@ private static void addPathToLinearScanOrder(Block block, List order, PriorityQueue worklist, BitSet visitedBlocks) { block.setLinearScanNumber(order.size()); order.add(block); - Block mostLikelySuccessor = findAndMarkMostLikelySuccessor(block, visitedBlocks); enqueueSuccessors(block, worklist, visitedBlocks); - if (mostLikelySuccessor != null) { - if (!mostLikelySuccessor.isLoopHeader() && mostLikelySuccessor.getPredecessorCount() > 1) { - // We are at a merge. Check probabilities of predecessors that are not yet - // scheduled. - double unscheduledSum = 0.0; - for (Block pred : mostLikelySuccessor.getPredecessors()) { - if (!visitedBlocks.get(pred.getId())) { - unscheduledSum += pred.getBeginNode().probability(); - } - } - - if (unscheduledSum > block.getProbability() / PENALTY_VERSUS_UNSCHEDULED) { - // Add this merge only after at least one additional predecessor gets scheduled. - visitedBlocks.clear(mostLikelySuccessor.getId()); - return; - } - } - addPathToLinearScanOrder(mostLikelySuccessor, order, worklist, visitedBlocks); - } } /**