1 bdemsky 1.1.2.1 // ContCodeNoSSA.java, created Wed Nov 3 21:43:30 1999 by kkz 2 cananian 1.1.2.5 // Copyright (C) 1999 Karen K. Zee <kkz@alum.mit.edu> 3 bdemsky 1.1.2.1 // Licensed under the terms of the GNU GPL; see COPYING for details. 4 bdemsky 1.1.2.1 package harpoon.Analysis.EventDriven; 5 bdemsky 1.1.2.1 6 bdemsky 1.1.2.1 import harpoon.ClassFile.HClass; 7 bdemsky 1.1.2.1 import harpoon.ClassFile.HCode; 8 bdemsky 1.1.2.1 import harpoon.ClassFile.HField; 9 bdemsky 1.1.2.1 import harpoon.ClassFile.HMethod; 10 bdemsky 1.1.2.1 import harpoon.IR.Quads.Quad; 11 bdemsky 1.1.2.1 import harpoon.IR.Quads.QuadSSI; 12 bdemsky 1.1.2.1 import harpoon.IR.Quads.QuadFactory; 13 cananian 1.1.2.4 import harpoon.IR.Quads.RSSxToNoSSA; 14 bdemsky 1.1.2.1 import harpoon.Temp.Temp; 15 bdemsky 1.1.2.1 import harpoon.Temp.TempFactory; 16 bdemsky 1.1.2.1 import harpoon.Util.Util; 17 bdemsky 1.1.2.1 18 bdemsky 1.1.2.1 import java.util.Iterator; 19 bdemsky 1.1.2.1 import java.util.Map; 20 bdemsky 1.1.2.1 21 bdemsky 1.1.2.1 /** 22 bdemsky 1.1.2.1 * <code>ContCodeNoSSA</code> builds the code for a <code>Continuation</code> 23 bdemsky 1.1.2.1 * using <code>quad-no-ssa</code> <code>HCode</code>. 24 bdemsky 1.1.2.1 * 25 cananian 1.1.2.5 * @author Karen K. Zee <kkz@alum.mit.edu> 26 cananian 1.2 * @version $Id: ContCodeNoSSA.java,v 1.2 2002/02/25 20:57:01 cananian Exp $ 27 bdemsky 1.1.2.1 */ 28 bdemsky 1.1.2.1 public class ContCodeNoSSA extends harpoon.IR.Quads.QuadNoSSA { 29 bdemsky 1.1.2.1 30 bdemsky 1.1.2.1 /** Creates a <code>ContCodeNoSSA</code> for an <code>HMethod</code> using 31 bdemsky 1.1.2.1 * the <code>HCode</code> from which we want to build the continuation 32 bdemsky 1.1.2.1 * and the <code>CALL</code> at which we want the continuation built. 33 bdemsky 1.1.2.1 * The <code>HCode</code> must be <code>quad-no-ssa</code>. 34 bdemsky 1.1.2.1 * 35 bdemsky 1.1.2.1 */ 36 bdemsky 1.1.2.1 public ContCodeNoSSA(HMethod parent) { 37 bdemsky 1.1.2.1 super(parent, null); 38 bdemsky 1.1.2.1 } 39 bdemsky 1.1.2.1 40 bdemsky 1.1.2.1 public ContCodeNoSSA(QuadSSI qsa) { 41 bdemsky 1.1.2.1 super(qsa.getMethod(),null); 42 cananian 1.1.2.4 RSSxToNoSSA translate = new RSSxToNoSSA(this.qf, qsa); 43 bdemsky 1.1.2.1 this.quads=translate.getQuads(); 44 bdemsky 1.1.2.2 this.setAllocationInformation(translate.getAllocationInfo()); 45 bdemsky 1.1.2.1 } 46 bdemsky 1.1.2.1 47 bdemsky 1.1.2.1 /** 48 bdemsky 1.1.2.1 * Return the name of this code view. 49 bdemsky 1.1.2.1 * @return the name of the <code>parent</code>'s code view. 50 bdemsky 1.1.2.1 */ 51 bdemsky 1.1.2.1 public String getName() { 52 cananian 1.1.2.6 return harpoon.IR.Quads.QuadNoSSA.codename; 53 bdemsky 1.1.2.1 } 54 bdemsky 1.1.2.1 55 bdemsky 1.1.2.1 public void quadSet(Quad q) { 56 bdemsky 1.1.2.1 this.quads=q; 57 bdemsky 1.1.2.1 } 58 bdemsky 1.1.2.1 59 bdemsky 1.1.2.1 public QuadFactory getFactory() { 60 bdemsky 1.1.2.1 return qf; 61 bdemsky 1.1.2.1 } 62 cananian 1.2 }