Move mlp and sese stuff into a separate compiler pass
[IRC.git] / Robust / src / IR / Flat / FlatSESEEnterNode.java
1 package IR.Flat;
2 import IR.Tree.SESENode;
3 import java.util.HashSet;
4
5 public class FlatSESEEnterNode extends FlatNode {
6   private static int identifier=0;
7   private int id;
8   protected FlatSESEExitNode exit;
9   protected SESENode treeNode;
10   protected HashSet<TempDescriptor> inVars;
11   protected HashSet<TempDescriptor> outVars;
12
13   public FlatSESEEnterNode( SESENode sn ) {
14     this.id  = identifier++;
15     treeNode = sn;
16     inVars   = new HashSet<TempDescriptor>();
17     outVars  = new HashSet<TempDescriptor>();
18   }
19
20   public void rewriteUse() {
21   }
22
23   public void rewriteDef() {
24   }
25
26   public void addInVar( TempDescriptor td ) {
27     inVars.add( td );
28   }
29
30   public void addOutVar( TempDescriptor td ) {
31     outVars.add( td );
32   }
33
34   public void addInVarSet( HashSet<TempDescriptor> s ) {
35     inVars.addAll( s );
36   }
37
38   public void addOutVarSet( HashSet<TempDescriptor> s ) {
39     outVars.addAll( s );
40   }
41
42   public HashSet<TempDescriptor> getInVarSet() {
43     return inVars;
44   }
45
46   public HashSet<TempDescriptor> getOutVarSet() {
47     return outVars;
48   }
49
50   public SESENode getTreeNode() {
51     return treeNode;
52   }
53
54   public int getIdentifier() {
55     return id;
56   }
57
58   public String getPrettyIdentifier() {    
59     if( treeNode.getID() != null ) {
60       return treeNode.getID();
61     }     
62     return ""+id;
63   }
64
65   public String toString() {
66     return "sese "+getPrettyIdentifier()+" enter";
67   }
68
69   public void setFlatExit( FlatSESEExitNode fsexn ) {
70     exit = fsexn;
71   }
72
73   public FlatSESEExitNode getFlatExit() {
74     return exit;
75   }
76
77   public int kind() {
78     return FKind.FlatSESEEnterNode;
79   }
80 }