< prev index next >
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.common/src/org/graalvm/compiler/core/common/alloc/BiDirectionalTraceBuilder.java
Print this page
rev 52509 : [mq]: graal2
*** 61,71 ****
queue.sort(BiDirectionalTraceBuilder::compare);
return new ArrayDeque<>(queue);
}
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());
}
--- 61,71 ----
queue.sort(BiDirectionalTraceBuilder::compare);
return new ArrayDeque<>(queue);
}
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());
}
*** 130,150 ****
debug.log("Trace: %s", trace);
return trace;
}
private void addBlockToTrace(DebugContext debug, AbstractBlockBase<?> block) {
! debug.log("add %s (prob: %f)", block, block.probability());
processed.set(block.getId());
}
/**
* @return The unprocessed predecessor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectPredecessor(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> pred : block.getPredecessors()) {
! if (!processed(pred) && !isBackEdge(pred, block) && (next == null || pred.probability() > next.probability())) {
next = pred;
}
}
return next;
}
--- 130,150 ----
debug.log("Trace: %s", trace);
return trace;
}
private void addBlockToTrace(DebugContext debug, AbstractBlockBase<?> block) {
! debug.log("add %s (freq: %f)", block, block.getRelativeFrequency());
processed.set(block.getId());
}
/**
* @return The unprocessed predecessor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectPredecessor(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> pred : block.getPredecessors()) {
! if (!processed(pred) && !isBackEdge(pred, block) && (next == null || pred.getRelativeFrequency() > next.getRelativeFrequency())) {
next = pred;
}
}
return next;
}
*** 158,168 ****
* @return The unprocessed successor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectSuccessor(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> succ : block.getSuccessors()) {
! if (!processed(succ) && (next == null || succ.probability() > next.probability())) {
next = succ;
}
}
return next;
}
--- 158,168 ----
* @return The unprocessed successor with the highest probability, or {@code null}.
*/
private AbstractBlockBase<?> selectSuccessor(AbstractBlockBase<?> block) {
AbstractBlockBase<?> next = null;
for (AbstractBlockBase<?> succ : block.getSuccessors()) {
! if (!processed(succ) && (next == null || succ.getRelativeFrequency() > next.getRelativeFrequency())) {
next = succ;
}
}
return next;
}
< prev index next >