1 cananian 1.1 // UseDefMap.java, created Sun Sep 13 23:11:39 1998 by cananian
 2 cananian 1.3 // Copyright (C) 1998 C. Scott Ananian <cananian@alumni.princeton.edu>
 3 cananian 1.3 // Licensed under the terms of the GNU GPL; see COPYING for details.
 4 cananian 1.1 package harpoon.Analysis.Maps;
 5 cananian 1.1 
 6 cananian 1.1 import harpoon.ClassFile.HCode;
 7 cananian 1.1 import harpoon.ClassFile.HCodeElement;
 8 cananian 1.1 import harpoon.Temp.Temp;
 9 cananian 1.1 
10 cananian 1.1 /**
11 cananian 1.1  * A <code>UseDefMap</code> is a mapping from temporaries to the
12 cananian 1.1  * <code>HCodeElements</code> that define them.
13 cananian 1.1  * 
14 cananian 1.1  * @author  C. Scott Ananian <cananian@alumni.princeton.edu>
15 cananian 1.6  * @version $Id: UseDefMap.java,v 1.6 2002/09/02 19:23:27 cananian Exp $
16 cananian 1.1  */
17 cananian 1.1 
18 cananian 1.6 public interface UseDefMap<HCE extends HCodeElement>  {
19 cananian 1.1     /**
20 cananian 1.2      * Return an array of <code>HCodeElement</code>s that use 
21 cananian 1.2      * <code>Temp t</code>.
22 cananian 1.1      * @param hc The <code>HCode</code> containing <code>t</code>.
23 cananian 1.1      * @param t  The temporary to examine.
24 cananian 1.1      * @return an array of <code>HCodeElement</code>s where
25 cananian 1.1      *         <code>HCodeElement.use()</code> includes <code>t</code>.
26 cananian 1.1      */
27 cananian 1.6     HCE[] useMap(HCode<HCE> hc, Temp t);
28 cananian 1.1     /**
29 cananian 1.2      * Return an array of <code>HCodeElement</code>s that define 
30 cananian 1.2      * <code>Temp t</code>.
31 cananian 1.1      * @param hc The <code>HCode</code> containing <code>t</code>.
32 cananian 1.1      * @param t  The temporary to examine.
33 cananian 1.1      * @return an array of <code>HCodeElement</code>s where
34 cananian 1.1      *         <code>HCodeElement.def()</code> includes <code>t</code>.
35 cananian 1.1      */
36 cananian 1.6     HCE[] defMap(HCode<HCE> hc, Temp t);
37 cananian 1.1 }