This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
1 package IR.Flat;
2 import IR.*;
3 import java.util.*;
4
5 public class TempObject {
6   ParamsObject params;
7   private Vector pointerparams;
8   private Vector primitiveparams;
9   private MethodDescriptor method;
10   private TaskDescriptor task;
11   private int tag;
12   private Hashtable paramtotemp;
13   private Hashtable temptostore;
14   private int count;
15
16   public TempObject(ParamsObject p, MethodDescriptor md, int tag) {
17     params=p;
18     pointerparams=new Vector();
19     primitiveparams=new Vector();
20     paramtotemp=new Hashtable();
21     temptostore=new Hashtable();
22     this.method=md;
23     this.tag=tag;
24     count=0;
25   }
26
27   public TempObject(ParamsObject p, TaskDescriptor task, int tag) {
28     params=p;
29     pointerparams=new Vector();
30     primitiveparams=new Vector();
31     paramtotemp=new Hashtable();
32     temptostore=new Hashtable();
33     this.task=task;
34     this.tag=tag;
35     count=0;
36   }
37
38   public void addPtr(TempDescriptor t) {
39     if (!params.containsTemp(t)&&!pointerparams.contains(t)) {
40       Position p=new Position(true, pointerparams.size());
41       pointerparams.add(t);
42       paramtotemp.put(new Integer(count++), t);
43       temptostore.put(t,p);
44     }
45   }
46
47   public void addPrim(TempDescriptor t) {
48     if (!params.containsTemp(t)&&!primitiveparams.contains(t)) {
49       Position p=new Position(false, primitiveparams.size());
50       primitiveparams.add(t);
51       paramtotemp.put(new Integer(count++), t);
52       temptostore.put(t,p);
53     }
54   }
55
56   public boolean isLocalPtr(TempDescriptor t) {
57     if (!params.containsTemp(t)) {
58       Position p=(Position)temptostore.get(t);
59       return p.inStruct;
60     }
61     return false;
62   }
63
64   public boolean isLocalPrim(TempDescriptor t) {
65     if (!params.containsTemp(t)) {
66       Position p=(Position)temptostore.get(t);
67       return !p.inStruct;
68     }
69     return false;
70   }
71
72   public boolean isParamPtr(TempDescriptor t) {
73     return params.isParamPtr(t);
74   }
75
76   public boolean isParamPrim(TempDescriptor t) {
77     return params.isParamPrim(t);
78   }
79
80   int numPointers() {
81     return pointerparams.size();
82   }
83
84   TempDescriptor getPointer(int i) {
85     return (TempDescriptor) pointerparams.get(i);
86   }
87
88   int numPrimitives() {
89     return primitiveparams.size();
90   }
91
92   TempDescriptor getPrimitive(int i) {
93     return (TempDescriptor) primitiveparams.get(i);
94   }
95
96   static class Position {
97     boolean inStruct;
98     int position;
99     Position(boolean inStruct, int position) {
100       this.inStruct=inStruct;
101       this.position=position;
102     }
103   }
104 }