comparison graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java @ 2783:9bc0c2eb00d6

Made graph builder removal of BlockBegin work.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 25 May 2011 12:04:58 +0200
parents bda5972a40a5
children e62cfea1c134
comparison
equal deleted inserted replaced
2782:915456e4959e 2783:9bc0c2eb00d6
219 219
220 for (Node n : graph.getNodes()) { 220 for (Node n : graph.getNodes()) {
221 if (n instanceof Placeholder) { 221 if (n instanceof Placeholder) {
222 Placeholder p = (Placeholder) n; 222 Placeholder p = (Placeholder) n;
223 223
224 if (p == graph.start().successors().get(0)) { 224 /*if (p == graph.start().successors().get(0)) {
225 // nothing to do... 225 // nothing to do...
226 } else if (p.blockPredecessors().size() == 0) { 226 } else*/ if (p.blockPredecessors().size() == 0) {
227 assert p.next() == null; 227 assert p.next() == null;
228 p.delete(); 228 p.delete();
229 } else { 229 } else {
230 assert p.blockPredecessors().size() == 1; 230 assert p.blockPredecessors().size() == 1;
231 for (Node pred : new ArrayList<Node>(p.predecessors())) { 231 for (Node pred : new ArrayList<Node>(p.predecessors())) {
234 p.successors().clearAll(); 234 p.successors().clearAll();
235 p.delete(); 235 p.delete();
236 } 236 }
237 } 237 }
238 } 238 }
239
240 for (Node n : graph.getNodes()) {
241 assert !(n instanceof Placeholder);
242 }
243
244
239 for (Node n : graph.getNodes()) { 245 for (Node n : graph.getNodes()) {
240 if (n instanceof FrameState) { 246 if (n instanceof FrameState) {
241 boolean delete = false; 247 boolean delete = false;
242 if (n.usages().size() == 0 && n.predecessors().size() == 0) { 248 if (n.usages().size() == 0 && n.predecessors().size() == 0) {
243 delete = true; 249 delete = true;
1087 lastInstr = syncHandler.firstInstruction; 1093 lastInstr = syncHandler.firstInstruction;
1088 while (lastInstr.next() != null) { 1094 while (lastInstr.next() != null) {
1089 // go forward to the end of the block 1095 // go forward to the end of the block
1090 lastInstr = lastInstr.next(); 1096 lastInstr = lastInstr.next();
1091 } 1097 }
1092 frameState.initializeFrom(((BlockBegin) syncHandler.firstInstruction).stateBefore()); 1098
1099 // TTY.println("first instruction: " + syncHandler.firstInstruction);
1100 frameState.initializeFrom(((StateSplit) syncHandler.firstInstruction).stateBefore());
1093 1101
1094 int bci = Instruction.SYNCHRONIZATION_ENTRY_BCI; 1102 int bci = Instruction.SYNCHRONIZATION_ENTRY_BCI;
1095 1103
1096 assert lock != null; 1104 assert lock != null;
1097 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock; 1105 assert frameState.locksSize() > 0 && frameState.lockAt(frameState.locksSize() - 1) == lock;