adding a test case
[IRC.git] / Robust / src / IR / Flat / FlatGlobalConvNode.java
1 package IR.Flat;
2 import IR.TypeDescriptor;
3 import Analysis.Locality.LocalityBinding;
4
5 public class FlatGlobalConvNode extends FlatNode {
6   TempDescriptor src;
7   LocalityBinding lb;
8   boolean makePtr;
9   boolean convert=true;
10   FlatAtomicEnterNode faen;
11
12   public FlatGlobalConvNode(TempDescriptor src, LocalityBinding lb, boolean makePtr) {
13     this.src=src;
14     this.lb=lb;
15     this.makePtr=makePtr;
16   }
17
18   public FlatGlobalConvNode(TempDescriptor src, LocalityBinding lb, boolean makePtr, boolean doactualconvert) {
19     this.src=src;
20     this.lb=lb;
21     this.makePtr=makePtr;
22     this.convert=doactualconvert;
23   }
24
25   public FlatAtomicEnterNode getAtomicEnter() {
26     return faen;
27   }
28
29   public void setAtomicEnter(FlatAtomicEnterNode faen) {
30     this.faen=faen;
31   }
32
33   boolean doConvert() {
34     return convert;
35   }
36
37   public String toString() {
38     String str = "FlatGlobalConvNode_"+src.toString();
39     if (makePtr)
40       str += "=(PTR)";
41     else
42       str += "=(OID)";
43     return str+src.toString()+" "+lb;
44   }
45
46   public int kind() {
47     return FKind.FlatGlobalConvNode;
48   }
49
50   public LocalityBinding getLocality() {
51     return lb;
52   }
53
54   public boolean getMakePtr() {
55     return makePtr;
56   }
57
58   public TempDescriptor getSrc() {
59     return src;
60   }
61
62   public TempDescriptor [] writesTemps() {
63     return new TempDescriptor[] {src};
64   }
65
66   public TempDescriptor [] readsTemps() {
67     if (!makePtr&&!convert)
68       return new TempDescriptor[0];
69     else
70       return new TempDescriptor[] {src};
71   }
72 }