Mercurial > hg > truffle
diff graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java @ 19666:d9e44edfca9b
Improve common dominator calculations.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 03 Mar 2015 11:50:31 +0100 |
parents | 6c676b3301be |
children | b503dd4e723c |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Tue Mar 03 00:01:36 2015 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Tue Mar 03 11:50:31 2015 +0100 @@ -30,7 +30,6 @@ public final class Block extends AbstractBlockBase<Block> { - public static final int DISTANCED_DOMINATOR_CACHE = 5; protected final AbstractBeginNode beginNode; protected FixedNode endNode; @@ -177,28 +176,10 @@ this.probability = probability; } - public Block getDistancedDominatorCache() { - Block result = this.distancedDominatorCache; - if (result == null) { - Block current = this; - for (int i = 0; i < DISTANCED_DOMINATOR_CACHE; ++i) { - current = current.getDominator(); - } - distancedDominatorCache = current; - return current; - } else { - return result; - } - } - @Override public Block getDominator(int distance) { Block result = this; - int i = 0; - for (; i < distance - (DISTANCED_DOMINATOR_CACHE - 1); i += DISTANCED_DOMINATOR_CACHE) { - result = result.getDistancedDominatorCache(); - } - for (; i < distance; ++i) { + for (int i = 0; i < distance; ++i) { result = result.getDominator(); } return result;