1 cananian 1.1.2.1 // TempChain.java, created Thu May 6 00:58:03 1999 by cananian 2 cananian 1.1.2.1 // Copyright (C) 1999 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.Quads; 5 cananian 1.1.2.1 6 cananian 1.1.2.1 import harpoon.ClassFile.HCodeElement; 7 cananian 1.1.2.1 import harpoon.Temp.Temp; 8 cananian 1.1.2.1 import harpoon.Temp.TempFactory; 9 cananian 1.1.2.1 import harpoon.Temp.TempMap; 10 cananian 1.1.2.1 import harpoon.Util.Util; 11 cananian 1.1.2.1 12 cananian 1.1.2.1 /** 13 cananian 1.1.2.2 * <code>TempChain</code> needs to be documented. 14 cananian 1.1.2.1 * 15 cananian 1.1.2.1 * @author C. Scott Ananian <cananian@alumni.princeton.edu> 16 cananian 1.4 * @version $Id: TempChain.java,v 1.4 2002/04/10 03:05:19 cananian Exp $ 17 cananian 1.1.2.1 */ 18 cananian 1.1.2.1 public class TempChain extends harpoon.Temp.Temp { 19 cananian 1.1.2.1 public HCodeElement def; 20 cananian 1.1.2.1 public TempChain nextUse; // never null. 21 cananian 1.1.2.1 22 cananian 1.1.2.1 /** Creates a <code>TempChain</code>. */ // new def 23 cananian 1.1.2.1 public TempChain(final TempFactory tf, final String prefix) { 24 cananian 1.1.2.1 super(tf, prefix); 25 cananian 1.1.2.1 this.def = null; 26 cananian 1.1.2.1 this.nextUse = this; // circular list 27 cananian 1.3.2.1 assert nextUse!=null; 28 cananian 1.1.2.1 } 29 cananian 1.1.2.1 public TempChain(TempChain tc) { // new use of name used/defined by tc 30 cananian 1.1.2.1 super(tc.tempFactory(), tc.name()); 31 cananian 1.1.2.1 this.def = tc.def; 32 cananian 1.1.2.1 this.nextUse = tc.nextUse; 33 cananian 1.1.2.1 tc.nextUse = this; 34 cananian 1.3.2.1 assert nextUse!=null; 35 cananian 1.1.2.1 } 36 cananian 1.2 }