1 cananian 1.1.2.3 // DataFlowQuadVisitor.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 cananian 1.1.2.4 import harpoon.IR.Quads.QuadVisitor; 10 jwhaley 1.1.2.1 /** 11 jwhaley 1.1.2.1 * DataFlowQuadVisitor 12 jwhaley 1.1.2.1 * 13 cananian 1.1.2.5 * @author John Whaley <jwhaley@alum.mit.edu> 14 cananian 1.2 * @version $Id: DataFlowQuadVisitor.java,v 1.2 2002/02/25 20:56:39 cananian Exp $ 15 jwhaley 1.1.2.1 */ 16 jwhaley 1.1.2.1 17 jwhaley 1.1.2.1 public abstract class DataFlowQuadVisitor extends QuadVisitor { 18 jwhaley 1.1.2.1 19 jwhaley 1.1.2.1 public static boolean DEBUG = false; 20 jwhaley 1.1.2.1 public static void db(String s) { System.out.println(s); } 21 jwhaley 1.1.2.1 22 jwhaley 1.1.2.1 /** 23 jwhaley 1.1.2.1 * This bit is set whenever something changes. Used to check for 24 jwhaley 1.1.2.1 * termination. 25 jwhaley 1.1.2.1 */ 26 jwhaley 1.1.2.1 boolean changed; 27 jwhaley 1.1.2.1 28 jwhaley 1.1.2.1 /** 29 jwhaley 1.1.2.1 * Add the successors of the quad q to the worklist W, performing merge 30 jwhaley 1.1.2.1 * operations if necessary. 31 jwhaley 1.1.2.1 */ 32 jwhaley 1.1.2.1 public abstract void addSuccessors(Worklist W, Quad q); 33 jwhaley 1.1.2.1 34 jwhaley 1.1.2.1 /** 35 jwhaley 1.1.2.1 * Merge operation on the from and to quad. Returns true if the to quad 36 jwhaley 1.1.2.1 * changes. 37 jwhaley 1.1.2.1 */ 38 jwhaley 1.1.2.1 public abstract boolean merge(Quad from, Quad to); 39 jwhaley 1.1.2.1 40 cananian 1.2 }