1 cananian 1.1.2.1 // ReachingDefs.java, created Wed Feb 2 03:08:09 2000 by cananian 2 cananian 1.1.2.1 // Copyright (C) 2000 C. Scott Ananian <cananian@alumni.princeton.edu> 3 cananian 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 cananian 1.1.2.1 package harpoon.Analysis; 5 cananian 1.1.2.1 6 cananian 1.1.2.3 import harpoon.ClassFile.HCode; 7 cananian 1.1.2.2 import harpoon.ClassFile.HCodeElement; 8 cananian 1.1.2.2 import harpoon.Temp.Temp; 9 cananian 1.1.2.2 10 cananian 1.1.2.2 import java.util.Set; 11 cananian 1.1.2.1 /** 12 cananian 1.1.2.3 * <code>ReachingDefs</code> defines an abstract class for 13 cananian 1.1.2.1 * analyzing reaching definitions. 14 cananian 1.1.2.1 * 15 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 16 cananian 1.3 * @version $Id: ReachingDefs.java,v 1.3 2002/04/10 02:58:48 cananian Exp $ 17 cananian 1.1.2.1 */ 18 cananian 1.2.2.1 public abstract class ReachingDefs<HCE extends HCodeElement> { 19 pnkfelix 1.1.2.4 public final static boolean TIME = false; 20 pnkfelix 1.1.2.4 21 cananian 1.1.2.3 /** The <code>HCode</code> for which this object contains analysis 22 cananian 1.1.2.3 * results. */ 23 cananian 1.2.2.1 protected final HCode<HCE> hc; 24 cananian 1.1.2.3 25 cananian 1.1.2.3 /** Creates a <code>ReachingDefs</code> object for the provided 26 cananian 1.1.2.3 * <code>HCode</code>. */ 27 cananian 1.2.2.1 public ReachingDefs(HCode<HCE> hc) { this.hc = hc; } 28 cananian 1.1.2.3 29 cananian 1.1.2.1 /** Returns the Set of <code>HCodeElement</code>s providing definitions 30 cananian 1.1.2.1 * of <code>Temp</code> <code>t</code> which reach 31 cananian 1.1.2.1 * <code>HCodeElement</code> <code>hce</code>. */ 32 cananian 1.2.2.1 public abstract Set<HCE> reachingDefs(HCE hce, Temp t); 33 cananian 1.2 }