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     }