cgblock.h 475 B

1234567891011121314151617181920212223242526
  1. #ifndef CGBLOCK_H
  2. #define CGBLOCK_H
  3. #include "cgasm.h"
  4. struct CGBlock;
  5. typedef std::vector<CGBlock*> CGBlockSeq;
  6. typedef CGBlockSeq::iterator CGBlockIter;
  7. typedef CGBlockSeq::const_iterator CGBlockCIter;
  8. struct CGBlock{
  9. CGAsm *begin,*end;
  10. CGBlockSeq succ,pred;
  11. CGIntSet use,def,live_in,live_out;
  12. std::set<CGBlock*> dom,loops;
  13. int loop_level;
  14. CGBlock():begin(0),end(0),loop_level(0){}
  15. void removeSucc( CGBlock *blk );
  16. void removePred( CGBlock *blk );
  17. };
  18. #endif