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 }