Esempio n. 1
0
 public TraceSchedule(BasicBlocks b)
 {
     Blocks = b;
     for (StmListList l = b.Blocks; l != null; l = l.Tail)
     {
         Table[((Tree.LABEL)l.Head.Head).Label] = l.Head;
     }
     Stms  = GetNext();
     Table = null;
 }
Esempio n. 2
0
 public void MakeBlocks(Tree.StmList l)
 {
     if (l == null) return;
     else if (l.Head is Tree.LABEL)
     {
         LastStm = new Tree.StmList(l.Head, null);
         if (LastBlock == null)
             LastBlock = Blocks = new StmListList(LastStm, null);
         else
             LastBlock = LastBlock.Tail = new StmListList(LastStm, null);
         DoStms(l.Tail);
     }
     else MakeBlocks(new Tree.StmList(new Tree.LABEL(new Temp.Label()), l));
 }
Esempio n. 3
0
 public void MakeBlocks(Tree.StmList l)
 {
     if (l == null)
     {
         return;
     }
     else if (l.Head is Tree.LABEL)
     {
         LastStm = new Tree.StmList(l.Head, null);
         if (LastBlock == null)
         {
             LastBlock = Blocks = new StmListList(LastStm, null);
         }
         else
         {
             LastBlock = LastBlock.Tail = new StmListList(LastStm, null);
         }
         DoStms(l.Tail);
     }
     else
     {
         MakeBlocks(new Tree.StmList(new Tree.LABEL(new Temp.Label()), l));
     }
 }
Esempio n. 4
0
 public StmListList(Tree.StmList h, StmListList t)
 {
     Head = h; Tail = t;
 }
Esempio n. 5
0
 public StmListList(Tree.StmList h, StmListList t)
 {
     Head = h; Tail = t;
 }