Quick Search:

Mode

Context

Displaying 3 lines of context. None | Less | More | Full

Other Diffs

Ignore

Blank Lines Whitespace: Expand:

Diff

1.21
 
1.22
 
MAIN:pj:20050501110510
 
optim2.c
_>494494                         bb->bucket = NULL;
 495495                         bb->df = NULL;
 496496                         bb->dfchildren = NULL;
<> 497+                        bb->Aorig = NULL;
  498+                        bb->Aphi = NULL;
497499                         DLIST_INSERT_BEFORE(&bblocks, bb, bbelem);
 498500                         leader = 0;
 499501                         count++;
     
 !
530532                         bb->bucket = NULL;
 531533                         bb->df = NULL;
 532534                         bb->dfchildren = NULL;
<> 535+                        bb->Aorig = NULL;
  536+                        bb->Aphi = NULL;
533537                         DLIST_INSERT_BEFORE(&bblocks, bb, bbelem);
 534538                         count++;
 535539                         continue;
     
 !
865869         pv->bb = currbb;
 866870         pv->top = currip->ip_node;
 867871         pv->n = p->n_left;
<> 872+        BITSET(currbb->Aorig, p->n_left->n_lval);
868873 
 869874         defsites.arr[p->n_left->n_lval] = pv;
 870875 }
     
 !
894899         struct cfgnode *cnode;
 895900         TWORD ntype;
 896901         NODE *p;
<> 902+        struct pvarinfo *pv;
897903 
 898904         bb = DLIST_NEXT(&bblocks, bbelem);
 899905         defsites.low = ((struct interpass_prolog *)bb->first)->ip_tmpnum;
     
 !
906912         DLIST_FOREACH(bb, &bblocks, bbelem) {
 907913                 currbb = bb;
 908914                 ip = bb->first;
<> 915+                bb->Aorig = setalloc(defsites.size);
  916+                bb->Aphi = setalloc(defsites.size);
  917+                
909918 
 910919                 while (ip != bb->last) {
 911920                         findTemps(ip);
     
 !
923932                         defsites.arr[i] = n->next;
 924933                         /* For each y in n->bb->df */
 925934                         for (j = 0; j < bbinfo->size; j++) {
<>926 -                                if(!TESTBIT(n->bb->df, j))
  935+                                if (!TESTBIT(n->bb->df, j))
927936                                         continue;
<> 937+                                
  938+                                if (TESTBIT(bbinfo->arr[j]->Aphi, i))
  939+                                        continue;
  940+
928941                                 ntype = n->n->n_type;
 929942                                 k = 0;
 930943                                 /* Amount of predecessors for y */
     
 !
940953                                 /* Insert phi at top of basic block */
 941954                                 DLIST_INSERT_BEFORE(((struct interpass*)&n->bb->first), ip, qelem);
 942955                                 n->bb->first = ip;
<> 956+                                BITSET(bbinfo->arr[j]->Aphi, i);
  957+                                if (!TESTBIT(bbinfo->arr[j]->Aorig, i)) {
  958+                                        pv = tmpalloc(sizeof(struct pvarinfo));
  959+                                        // XXXpj Ej fullständig information.
  960+                                        pv->bb = bbinfo->arr[j];
  961+                                        pv->next = defsites.arr[i]->next;
  962+                                        defsites.arr[i] = pv;
  963+                                }
  964+                                        
<_943965 
 944966                         }
 945967                 }
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-08-30 22:17 +0200