- set *inExprs ; /* in coming common expressions */
- set *outExprs ; /* out going common expressions */
- bitVect *inDefs; /* in coming defintions */
- bitVect *outDefs; /* out going defintions */
- bitVect *defSet; /* symbols defined in block */
- bitVect *ldefs ; /* local definitions only */
- bitVect *usesDefs;/* which definitions are used in this block */
- bitVect *ptrsSet; /* pointers assigned values in the block */
- bitVect *inPtrsSet;/* in coming pointers assigned values */
- bitVect *ndompset; /* pointers set by non-dominating basic blocks */
- set *addrOf ; /* symbols for which addres has been taken in the block */
- bitVect *linds ; /* if loop exit this contains defNumbers
- for the inductions */
-} eBBlock ;
-
-typedef struct edge {
-
- eBBlock *from ; /* from basic block */
- eBBlock *to ; /* to Basic Block */
-} edge ;
-
-extern int eBBNum ;
-extern set *graphEdges ;
-
-
-DEFSETFUNC(printEntryLabel) ;
-eBBlock *neweBBlock () ;
-edge *newEdge (eBBlock *, eBBlock *) ;
-eBBlock *eBBWithEntryLabel ( eBBlock **, symbol *, int);
-DEFSETFUNC(ifFromIs) ;
-set *edgesTo ( eBBlock *);
-void remiCodeFromeBBlock (eBBlock *, iCode *);
-void addiCodeToeBBlock ( eBBlock *,iCode *,iCode *);
-eBBlock **iCodeBreakDown (iCode *, int *);
-void replaceSymBySym (set *, operand *, operand *);
-iCode *iCodeFromeBBlock ( eBBlock **,int);
-int otherPathsPresent (eBBlock **,eBBlock *);
-void replaceLabel(eBBlock *,symbol *,symbol *);
-void dumpEbbsToFileExt (char *,eBBlock **,int);
+ set *inExprs; /* in coming common expressions */
+ set *outExprs; /* out going common expressions */
+ set *killedExprs; /* killed common expressions */
+ bitVect *inDefs; /* in coming defintions */
+ bitVect *outDefs; /* out going defintions */
+ bitVect *defSet; /* symbols defined in block */
+ bitVect *ldefs; /* local definitions only */
+ bitVect *usesDefs; /* which definitions are used in this block */
+ bitVect *ptrsSet; /* pointers assigned values in the block */
+ bitVect *inPtrsSet; /* in coming pointers assigned values */
+ bitVect *ndompset; /* pointers set by non-dominating basic blocks */
+ set *addrOf; /* symbols for which addres has been taken in the block */
+ bitVect *linds; /* if loop exit this contains defNumbers
+ for the inductions */
+ }
+eBBlock;
+
+typedef struct ebbIndex
+ {
+ int count; /* number of blocks in the index */
+ eBBlock **bbOrder; /* blocks in bbnum order */
+ eBBlock **dfOrder; /* blocks in dfnum (depth first) order */
+ }
+ebbIndex;
+
+typedef struct edge
+ {
+
+ eBBlock *from; /* from basic block */
+ eBBlock *to; /* to Basic Block */
+ }
+edge;
+
+
+extern int eBBNum;
+extern set *graphEdges;
+
+
+DEFSETFUNC (printEntryLabel);
+eBBlock *neweBBlock ();
+edge *newEdge (eBBlock *, eBBlock *);
+eBBlock *eBBWithEntryLabel (ebbIndex *, symbol *);
+DEFSETFUNC (ifFromIs);
+set *edgesTo (eBBlock *);
+void remiCodeFromeBBlock (eBBlock *, iCode *);
+void addiCodeToeBBlock (eBBlock *, iCode *, iCode *);
+ebbIndex *iCodeBreakDown (iCode *);
+void replaceSymBySym (set *, operand *, operand *);
+iCode *iCodeFromeBBlock (eBBlock **, int);
+int otherPathsPresent (eBBlock **, eBBlock *);
+void replaceLabel (eBBlock *, symbol *, symbol *);
+void dumpEbbsToFileExt (int, ebbIndex *);
+void dumpLiveRanges (int, hTab * liveRanges);
+void closeDumpFiles();
+