1 cananian 1.1.2.3 // ForwardDataFlowQuadVisitor.java, created Wed Mar 10  9:00:53 1999 by jwhaley
 2 cananian 1.1.2.5 // Copyright (C) 1998 John Whaley <jwhaley@alum.mit.edu>
 3 cananian 1.1.2.2 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 jwhaley  1.1.2.1 package harpoon.Analysis.DataFlow;
 5 jwhaley  1.1.2.1 
 6 jwhaley  1.1.2.1 import java.util.Enumeration;
 7 jwhaley  1.1.2.1 import harpoon.Util.Worklist;
 8 cananian 1.1.2.4 import harpoon.IR.Quads.Quad;
 9 jwhaley  1.1.2.1 /**
10 jwhaley  1.1.2.1  * ForwardDataFlowQuadVisitor
11 jwhaley  1.1.2.1  *
12 cananian 1.1.2.5  * @author  John Whaley <jwhaley@alum.mit.edu>
13 cananian 1.2      * @version $Id: ForwardDataFlowQuadVisitor.java,v 1.2 2002/02/25 20:56:40 cananian Exp $
14 jwhaley  1.1.2.1  */
15 jwhaley  1.1.2.1 
16 jwhaley  1.1.2.1 public abstract class ForwardDataFlowQuadVisitor extends DataFlowQuadVisitor {
17 jwhaley  1.1.2.1 
18 jwhaley  1.1.2.1   public void addSuccessors(Worklist W, Quad q) {
19 jwhaley  1.1.2.1     if (DEBUG) db("adding successors of "+q+" to worklist");
20 jwhaley  1.1.2.1     for (int i=0, n=q.nextLength(); i<n; ++i) {
21 jwhaley  1.1.2.1       Quad qn = q.next(i);
22 jwhaley  1.1.2.1       if (DEBUG) db("looking at "+q+" -> "+qn);
23 jwhaley  1.1.2.1       if (merge(q, qn)) {
24 jwhaley  1.1.2.1         if (DEBUG) db("added "+qn+" to the work queue because its in set changed");
25 jwhaley  1.1.2.1         W.push(qn); // in set changed -- need to revisit target node
26 jwhaley  1.1.2.1       }
27 jwhaley  1.1.2.1     }
28 jwhaley  1.1.2.1   }
29 jwhaley  1.1.2.1 
30 jwhaley  1.1.2.1 }
31 cananian 1.2