225 }
226
227 @Override
228 protected VoidState merge(Block merge, List<VoidState> states) {
229 return voidState;
230 }
231
232 @Override
233 protected VoidState cloneState(VoidState oldState) {
234 return voidState;
235 }
236
237 @Override
238 protected List<VoidState> processLoop(Loop<Block> loop, VoidState initialState) {
239 return ReentrantBlockIterator.processLoop(this, loop, initialState).exitStates;
240 }
241 };
242 ControlFlowGraph cfg = ControlFlowGraph.compute(graph, true, true, true, false);
243 ReentrantBlockIterator.apply(closure, cfg.getStartBlock());
244 // schedule for IGV
245 new SchedulePhase().apply(graph);
246 return blocks;
247 }
248
249 }
|
225 }
226
227 @Override
228 protected VoidState merge(Block merge, List<VoidState> states) {
229 return voidState;
230 }
231
232 @Override
233 protected VoidState cloneState(VoidState oldState) {
234 return voidState;
235 }
236
237 @Override
238 protected List<VoidState> processLoop(Loop<Block> loop, VoidState initialState) {
239 return ReentrantBlockIterator.processLoop(this, loop, initialState).exitStates;
240 }
241 };
242 ControlFlowGraph cfg = ControlFlowGraph.compute(graph, true, true, true, false);
243 ReentrantBlockIterator.apply(closure, cfg.getStartBlock());
244 // schedule for IGV
245 new SchedulePhase(graph.getOptions()).apply(graph);
246 return blocks;
247 }
248
249 }
|