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 }