Mercurial > hg > graal-jvmci-8
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); |