comparison graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java @ 14798:cc2f1661f473

Create BlocksToDoubles and use it in the backend.
author Josef Eisl <josef.eisl@jku.at>
date Thu, 13 Mar 2014 17:16:23 +0100
parents f5b3292b4ded
children c4219e527b83
comparison
equal deleted inserted replaced
14797:18d5ffb7ac38 14798:cc2f1661f473
242 List<Block> codeEmittingOrder = null; 242 List<Block> codeEmittingOrder = null;
243 List<Block> linearScanOrder = null; 243 List<Block> linearScanOrder = null;
244 try (Scope ds = Debug.scope("MidEnd")) { 244 try (Scope ds = Debug.scope("MidEnd")) {
245 try (Scope s = Debug.scope("ComputeLinearScanOrder")) { 245 try (Scope s = Debug.scope("ComputeLinearScanOrder")) {
246 NodesToDoubles nodeProbabilities = new ComputeProbabilityClosure(graph).apply(); 246 NodesToDoubles nodeProbabilities = new ComputeProbabilityClosure(graph).apply();
247 codeEmittingOrder = ComputeBlockOrder.computeCodeEmittingOrder(blocks.length, startBlock, nodeProbabilities); 247 BlocksToDoubles blockProbabilities = BlocksToDoubles.createFromNodeProbability(nodeProbabilities, schedule.getCFG());
248 linearScanOrder = ComputeBlockOrder.computeLinearScanOrder(blocks.length, startBlock, nodeProbabilities); 248 codeEmittingOrder = ComputeBlockOrder.computeCodeEmittingOrder(blocks.length, startBlock, blockProbabilities);
249 linearScanOrder = ComputeBlockOrder.computeLinearScanOrder(blocks.length, startBlock, blockProbabilities);
249 250
250 lir = new LIR(schedule.getCFG(), linearScanOrder, codeEmittingOrder); 251 lir = new LIR(schedule.getCFG(), linearScanOrder, codeEmittingOrder);
251 Debug.dump(lir, "After linear scan order"); 252 Debug.dump(lir, "After linear scan order");
252 } catch (Throwable e) { 253 } catch (Throwable e) {
253 throw Debug.handle(e); 254 throw Debug.handle(e);