Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

live.H

Go to the documentation of this file.
00001 #ifndef _INCLUDE_LIVE_H_
00002 #define _INCLUDE_LIVE_H_
00003 
00004 #define HASH_KEY_SIZE (64)
00005 #define HASH_PART_SIZE (64)
00006 
00007 #include "lego.H"
00008 #include "setinfo.H"
00009 
00010 class LiveVar {
00011 private:
00012 
00013   SetInfoTable Table;
00014 
00015   bool ChangeBit;
00016 
00017   int IterCount;
00018 
00019   char *ReadHashKey;
00020   char *ReadHashPart1;
00021   char *ReadHashPart2;
00022   char *ReadHashPart3;
00023   char *WriteHashKey;
00024   char *WriteHashPart1;
00025   char *WriteHashPart2;
00026   char *WriteHashPart3;
00027   char *LBHashKey;
00028   char *UBHashKey;
00029 
00030   void CreateReadHashKey (int, int, int);
00031   void CreateReadHashKey (int, int, int, int);
00032   void CreateWriteHashKey (int, int, int);
00033   void CreateWriteHashKey (int, int, int, int);
00034 
00035   void BB_defs(legoOp *, int);
00036   void BB_uses(legoOp *, int);
00037   void Process(legoRegion *, legoProc *);
00038   void BB_live_out( legoProc *, legoRegion * );
00039   void BB_live_in( legoProc *, legoRegion * );
00040   void deleteedgeinfo ( int );
00041   bool CreateTable;
00042   legoHash <int, legoOprd *, legoHash_lt_int> *EdgeInfo;
00043 
00044 public:
00045 
00046   LiveVar() {
00047     CreateTable = TRUE;
00048     EdgeInfo = NULL;
00049   }
00050   ~LiveVar()                    { delete EdgeInfo; }
00051 
00052   void SetCreateTable ( bool c ) { CreateTable = c; }
00053   bool GetCreateTable ( void ) { return CreateTable; }
00054 
00055   void SetEdgeInfo ( legoHash <int, legoOprd *, legoHash_lt_int> *t )
00056   { EdgeInfo = t; }
00057   legoHash <int, legoOprd *, legoHash_lt_int> *
00058   GetEdgeInfo ( void ) { return EdgeInfo; }
00059 
00060   void analyze( legoRegion *, legoProc *);
00061   void analyze( legoModule * );
00062 
00063   void CollectEdgeInfo ( legoProc * );
00064 };
00065 
00066 legoHash <int, legoOprd *, legoHash_lt_int> *
00067 LiveVariables ( legoProc *, int = 0 );
00068 
00069 #endif  // _INCLUDE_LIVE_H_
00070 
00071 
00072 
00073 
00074 
00075 

Generated on Mon Jul 21 20:27:53 2003 for TINKER LEGO DOC by doxygen 1.3.2