< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/UniDirectionalTraceBuilder.java
Print this page
rev 52509 : [mq]: graal2
*** 63,73 ****
blocked[block.getId()] = block.getPredecessorCount();
}
}
private static int compare(AbstractBlockBase<?> a, AbstractBlockBase<?> b) {
! return Double.compare(b.probability(), a.probability());
}
private boolean processed(AbstractBlockBase<?> b) {
return processed.get(b.getId());
}
--- 63,73 ----
blocked[block.getId()] = block.getPredecessorCount();
}
}
private static int compare(AbstractBlockBase<?> a, AbstractBlockBase<?> b) {
! return Double.compare(b.getRelativeFrequency(), a.getRelativeFrequency());
}
private boolean processed(AbstractBlockBase<?> b) {
return processed.get(b.getId());
}
*** 108,118 ****
assert checkPredecessorsProcessed(traceStart);
ArrayList<AbstractBlockBase<?>> trace = new ArrayList<>();
int blockNumber = 0;
try (Indent i = debug.logAndIndent("StartTrace: %s", traceStart)) {
for (AbstractBlockBase<?> block = traceStart; block != null; block = selectNext(block)) {
! debug.log("add %s (prob: %f)", block, block.probability());
processed.set(block.getId());
trace.add(block);
unblock(block);
block.setLinearScanNumber(blockNumber++);
}
--- 108,118 ----
assert checkPredecessorsProcessed(traceStart);
ArrayList<AbstractBlockBase<?>> trace = new ArrayList<>();
int blockNumber = 0;
try (Indent i = debug.logAndIndent("StartTrace: %s", traceStart)) {
for (AbstractBlockBase<?> block = traceStart; block != null; block = selectNext(block)) {
! debug.log("add %s (freq: %f)", block, block.getRelativeFrequency());
processed.set(block.getId());
trace.add(block);
unblock(block);
block.setLinearScanNumber(blockNumber++);
}
*** 147,157 ****
* @return The unprocessed predecessor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectNext(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> successor : block.getSuccessors()) {
! if (!processed(successor) && (next == null || successor.probability() > next.probability())) {
next = successor;
}
}
return next;
}
--- 147,157 ----
* @return The unprocessed predecessor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectNext(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> successor : block.getSuccessors()) {
! if (!processed(successor) && (next == null || successor.getRelativeFrequency() > next.getRelativeFrequency())) {
next = successor;
}
}
return next;
}
< prev index next >