checking in changes
[IRC.git] / Robust / src / IR / Flat / FlatCondBranch.java
1 package IR.Flat;
2 import java.util.Vector;
3
4 public class FlatCondBranch extends FlatNode {
5     TempDescriptor test_cond;
6     double trueprob=0.5;
7
8     public FlatCondBranch(TempDescriptor td) {
9         test_cond=td;
10     }
11
12     public void setTrueProb(double p) {
13         trueprob=p;
14     }
15
16     public double getTrueProb() {
17         return trueprob;
18     }
19
20     public double getFalseProb() {
21         return 1-trueprob;
22     }
23
24     public void addTrueNext(FlatNode n) {
25         if (next.size()==0)
26             next.setSize(1);
27         next.setElementAt(n,0);
28         n.addPrev(this);
29     }
30
31     public void addFalseNext(FlatNode n) {
32         next.setSize(2);
33         next.setElementAt(n,1);
34         n.addPrev(this);
35     }
36
37     public TempDescriptor getTest() {
38         return test_cond;
39     }
40
41     public String toString() {
42         return "conditional branch";
43     }
44
45     public String toString(String negjump) {
46         return "FlatCondBranch_if (!"+test_cond.toString()+") goto "+negjump;
47     }
48
49     public void addNext(FlatNode n) {
50         throw new Error();
51     }
52
53     public int kind() {
54         return FKind.FlatCondBranch;
55     }
56
57     public TempDescriptor [] readsTemps() {
58         return new TempDescriptor[] {test_cond};
59     }
60 }