Mercurial > hg > graal-compiler
comparison graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/schedule/IdentifyBlocksPhase.java @ 3003:a7a7e87ad230
Moved some code in the scheduler to the right place.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Thu, 16 Jun 2011 16:19:36 +0200 |
parents | bf14154d5b14 |
children | 6264ecd38bc2 |
comparison
equal
deleted
inserted
replaced
3002:bf14154d5b14 | 3003:a7a7e87ad230 |
---|---|
120 | 120 |
121 // Connect blocks. | 121 // Connect blocks. |
122 for (Block block : blocks) { | 122 for (Block block : blocks) { |
123 Node n = block.firstNode(); | 123 Node n = block.firstNode(); |
124 if (n instanceof Merge) { | 124 if (n instanceof Merge) { |
125 for (Node usage : n.usages()) { | |
126 if (usage instanceof Phi || usage instanceof LoopCounter) { | |
127 nodeToBlock.set(usage, block); | |
128 } | |
129 } | |
130 Merge m = (Merge) n; | 125 Merge m = (Merge) n; |
131 for (int i = 0; i < m.endCount(); ++i) { | 126 for (int i = 0; i < m.endCount(); ++i) { |
132 EndNode end = m.endAt(i); | 127 EndNode end = m.endAt(i); |
133 Block predBlock = nodeToBlock.get(end); | 128 Block predBlock = nodeToBlock.get(end); |
134 predBlock.addSuccessor(block); | 129 predBlock.addSuccessor(block); |
232 } | 227 } |
233 | 228 |
234 Block prevBlock = nodeToBlock.get(n); | 229 Block prevBlock = nodeToBlock.get(n); |
235 if (prevBlock != null) { | 230 if (prevBlock != null) { |
236 return prevBlock; | 231 return prevBlock; |
232 } | |
233 | |
234 if (n instanceof Phi) { | |
235 Block block = nodeToBlock.get(((Phi) n).merge()); | |
236 nodeToBlock.set(n, block); | |
237 } | |
238 | |
239 if (n instanceof LoopCounter) { | |
240 Block block = nodeToBlock.get(((LoopCounter) n).loopBegin()); | |
241 nodeToBlock.set(n, block); | |
237 } | 242 } |
238 | 243 |
239 Block block = null; | 244 Block block = null; |
240 for (Node succ : n.successors()) { | 245 for (Node succ : n.successors()) { |
241 block = getCommonDominator(block, assignLatestPossibleBlockToNode(succ)); | 246 block = getCommonDominator(block, assignLatestPossibleBlockToNode(succ)); |