Advertisement
Guest User

Untitled

a guest
May 28th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. #include "LivenessAnalysis.h"
  2.  
  3.  
  4. void livenessAnalysis(Instructions instructions)
  5. {
  6. Variables in1;
  7. Variables out1;
  8. bool nasao = false;
  9.  
  10. for(auto it = instructions.rbegin(); it!= instructions.rend(); it++){
  11. (*it)->in.clear();
  12. (*it)->out.clear();
  13. }
  14.  
  15. do{
  16. nasao = false;
  17. //prolazis kroz listu instrukcija
  18. for(auto it = instructions.rbegin(); it!= instructions.rend(); it++){
  19.  
  20. // out[n] <- U sesucc[n] in[s]
  21. for(auto it1 = (*it)->succ.begin(); it1 != (*it)->succ.end(); it1++){
  22. for(auto it2 = (*it1)->in.begin(); it2 != (*it1)->in.end(); it2++){
  23. (*it)->out.push_back(*it2);
  24. }
  25.  
  26. }
  27.  
  28. (*it)->out.sort();
  29. (*it)->out.unique(); // da ti budu jedinstvene liste, bez duplikata, prvo mora sort
  30.  
  31. (*it)->in = (*it)->use;
  32.  
  33. for(auto it3 = (*it)->out.begin(); it3 != (*it)->out.end(); it3++){
  34. if(!variableExists((*it3),(*it)->def)){
  35. (*it)->in.push_back(*it3);
  36. }
  37. }
  38.  
  39. (*it)->in.sort();
  40. (*it)->in.unique();
  41. if(((*it)->in)!=in1 || ((*it)->out)!=out1){
  42. nasao = true;
  43. }
  44.  
  45. }
  46. } while(!nasao)
  47. }
  48.  
  49. //izlaz uporedis sa onom tabelom ukljucujuci prvu kolonu trebalo bi da se poklapa
  50. //mozda ce vam traziti repeat until da uradite, nama nije samo nas je pitao kako bi to islo a mene je pitao ovo za unique i sort
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement