1 cananian 1.1.2.1 // UseDef.java, created Sat Sep 12 17:55:44 1998 by cananian
 2 cananian 1.1.2.1 // Copyright (C) 1998 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.IR.Properties;
 5 cananian 1.1.2.1 
 6 cananian 1.1.2.1 import harpoon.Temp.Temp;
 7 cananian 1.1.2.1 
 8 cananian 1.1.2.1 import java.util.Collection;
 9 cananian 1.1.2.1 /**
10 cananian 1.1.2.1  * <code>UseDefable</code> defines an interface for intermediate
11 cananian 1.1.2.1  * representations that keep use/def information.
12 cananian 1.1.2.1  * 
13 cananian 1.1.2.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
14 cananian 1.3      * @version $Id: UseDefable.java,v 1.3 2002/04/10 03:05:09 cananian Exp $
15 cananian 1.1.2.1  */
16 cananian 1.1.2.1 
17 cananian 1.1.2.1 public interface UseDefable extends harpoon.ClassFile.HCodeElement {
18 cananian 1.1.2.1     /** Return all the <code>Temp</code>s used by this 
19 cananian 1.1.2.1      *  <code>HCodeElement</code>. */
20 cananian 1.1.2.1     public Temp[] use();
21 cananian 1.1.2.1     /** Return all the <code>Temp</code>s defined by this 
22 cananian 1.1.2.1      *  <code>HCodeElement</code>. */
23 cananian 1.1.2.1     public Temp[] def();
24 cananian 1.1.2.1 
25 cananian 1.1.2.1     // JDK 1.2 collections API: [FSK, 3-Sep-1999]
26 cananian 1.1.2.1     /** Returns a <code>Collection</code> of all the
27 cananian 1.1.2.1         <code>Temp</code>s read in this <code>HCodeElement</code>.  
28 cananian 1.1.2.1     */
29 cananian 1.2.2.1     public Collection<Temp> useC();
30 cananian 1.1.2.1 
31 cananian 1.1.2.1     /** Returns a <code>Collection</code> of all the
32 cananian 1.1.2.1         <code>Temp</code>s defined in this <code>HCodeElement</code>.   
33 cananian 1.1.2.1     */
34 cananian 1.2.2.1     public Collection<Temp> defC();
35 cananian 1.2     }