1 kkz 1.1.2.1 // Liveness.java, created Thu Oct 28 00:31:56 1999 by kkz 2 cananian 1.1.2.4 // Copyright (C) 1999 Karen K. Zee <kkz@alum.mit.edu> 3 kkz 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 kkz 1.1.2.1 package harpoon.Analysis; 5 kkz 1.1.2.1 6 kkz 1.1.2.1 import harpoon.ClassFile.HCode; 7 kkz 1.1.2.1 import harpoon.ClassFile.HCodeElement; 8 cananian 1.2.2.1 import harpoon.Temp.Temp; 9 kkz 1.1.2.1 10 kkz 1.1.2.1 import java.util.Set; 11 kkz 1.1.2.1 12 kkz 1.1.2.1 /** 13 kkz 1.1.2.1 * <code>Liveness</code> defines an abstract class for live variable analysis. 14 kkz 1.1.2.1 * 15 cananian 1.1.2.4 * @author Karen K. Zee <kkz@alum.mit.edu> 16 cananian 1.3 * @version $Id: Liveness.java,v 1.3 2002/04/10 02:58:48 cananian Exp $ 17 kkz 1.1.2.1 */ 18 cananian 1.2.2.1 public abstract class Liveness<HCE extends HCodeElement> { 19 cananian 1.1.2.3 /** The <code>HCode</code> for which this object contains analysis 20 cananian 1.1.2.3 * results. */ 21 cananian 1.2.2.1 protected final HCode<HCE> hc; 22 kkz 1.1.2.1 23 kkz 1.1.2.1 /** Creates a <code>Liveness</code> object from 24 kkz 1.1.2.1 * provided <code>HCode</code>. 25 kkz 1.1.2.1 */ 26 cananian 1.2.2.1 public Liveness(HCode<HCE> hc) { 27 kkz 1.1.2.1 this.hc = hc; 28 kkz 1.1.2.1 } 29 pnkfelix 1.1.2.2 30 kkz 1.1.2.1 /** Returns the <code>Set</code> of <code>Temp</code>s 31 kkz 1.1.2.1 * that are live-in at the <code>HCodeElement</code>. 32 kkz 1.1.2.1 */ 33 cananian 1.2.2.1 public abstract Set<Temp> getLiveIn(HCE hce); 34 kkz 1.1.2.1 35 kkz 1.1.2.1 /** Returns the <code>Set</code> of <code>Temp</code>s 36 kkz 1.1.2.1 * that are live-out at the <code>HCodeElement</code>. 37 kkz 1.1.2.1 */ 38 cananian 1.2.2.1 public abstract Set<Temp> getLiveOut(HCE hce); 39 cananian 1.2 }