1 package edu.berkeley.fleet.dataflow;
3 import edu.berkeley.fleet.loops.*;
4 import edu.berkeley.fleet.api.*;
11 public class DataFlowGraph implements Iterable<Node> {
13 public final Fleet fleet;
14 public final ShipPool pool;
17 * Use LinkedHashSet to get a predictable/repeatable iteration
18 * order, which leads to predictable/repeatable code
20 private LinkedHashSet<Node> nodes = new LinkedHashSet<Node>();
22 public DataFlowGraph(Fleet fleet, ShipPool pool) {
27 public Iterator<Node> iterator() { return nodes.iterator(); }
28 public void addNode(Node node) { this.nodes.add(node); }
30 public CodeBag build(CodeBag cb) {
31 boolean oldAutoflush = cb.getAutoflush();
32 cb.setAutoflush(true);
33 for(Node mod : nodes) mod.build(cb);
34 // this breaks stuff, but it shouldn't!
35 //cb.setAutoflush(oldAutoflush);