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     }