Advertisement
Guest User

sppurv11

a guest
May 24th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. void livenessAnalysis(Instructions instructions)
  2. {
  3.     for(Instructions::reverse_iterator i=instructions.rbegin();i!=instructions.rend();i++)
  4.     {
  5.         (*i)->out.clear();
  6.         for(Instructions::iterator j=(*i)->succ.begin();j!=(*i)->succ.end();j++)
  7.         {
  8.             for(Variables::iterator k=(*j)->in.begin();k!=(*j)->in.end();k++)
  9.             {
  10.                 (*i)->out.push_back((*k));
  11.             }
  12.         }
  13.         (*i)->out.sort();
  14.         (*i)->out.unique();
  15.  
  16.         (*i)->in=(*i)->use;
  17.         for(Variables::iterator j=(*i)->out.begin();j!=(*i)->out.end();j++)
  18.         {
  19.             bool found=false;
  20.             for(Variables::iterator k=(*i)->def.begin();k!=(*i)->def.end();k++)
  21.             {
  22.                 if((*j)==(*k))
  23.                 {
  24.                     found=true;
  25.                     break;
  26.                 }
  27.             }
  28.             if(!found)(*i)->in.push_back((*j));
  29.         }
  30.         (*i)->in.sort();
  31.         (*i)->in.unique();
  32.     }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement