2 import java.util.Vector;
4 public class FlatCondBranch extends FlatNode {
5 TempDescriptor test_cond;
10 public FlatCondBranch(TempDescriptor td) {
13 public void rewriteDef(TempMap t) {
15 public void rewriteUse(TempMap t) {
16 test_cond=t.tempMap(test_cond);
19 public FlatNode clone(TempMap t) {
20 FlatCondBranch fcb=new FlatCondBranch(t.tempMap(test_cond));
21 fcb.trueprob=trueprob;
26 public void setLoop() {
30 public boolean isLoopBranch() {
34 public void setLoopEntrance(FlatNode loopEntrance){
35 this.loopEntrance=loopEntrance;
38 public FlatNode getLoopEntrance(){
42 public void setTrueProb(double p) {
46 public double getTrueProb() {
50 public double getFalseProb() {
54 public void addTrueNext(FlatNode n) {
57 next.setElementAt(n,0);
61 public void addFalseNext(FlatNode n) {
63 next.setElementAt(n,1);
67 public TempDescriptor getTest() {
71 public String toString() {
72 return "conditional branch("+test_cond.toString()+")";
75 public String toString(String negjump) {
76 return "FlatCondBranch_if (!"+test_cond.toString()+") goto "+negjump;
79 public void addNext(FlatNode n) {
84 return FKind.FlatCondBranch;
87 public TempDescriptor [] readsTemps() {
88 return new TempDescriptor[] {test_cond};