Mercurial > hg > graal-compiler
changeset 22438:d94dd15e757a
TraceRA: TraceBuilder: do not remove processed blocks from worklist, just skip them.
author | Josef Eisl <josef.eisl@jku.at> |
---|---|
date | Mon, 10 Aug 2015 15:46:55 +0200 |
parents | 2a7fbe938296 |
children | 79ea15cd3701 |
files | graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java Tue Aug 11 11:34:13 2015 +0200 +++ b/graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/alloc/TraceBuilder.java Mon Aug 10 15:46:55 2015 +0200 @@ -111,7 +111,9 @@ while (!worklist.isEmpty()) { T block = worklist.poll(); assert block != null; - traces.add(startTrace(block, traces.size())); + if (!processed(block)) { + traces.add(startTrace(block, traces.size())); + } } return traces; } @@ -127,7 +129,6 @@ for (T currentBlock = block; currentBlock != null; currentBlock = selectNext(currentBlock)) { Debug.log("add %s (prob: %f)", currentBlock, currentBlock.probability()); processed.set(currentBlock.getId()); - worklist.remove(currentBlock); trace.add(currentBlock); unblock(currentBlock); currentBlock.setLinearScanNumber(blockNumber++);