X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2FSDCCcse.h;h=1926dd84a4112b19ddf87caa6e0f9d5ddf0da0ae;hb=5a1d5e778e85664f4e6657019348b4756b16eacb;hp=e398dcc927f085a3c786125b64b393724023a235;hpb=501951f3d5ada07ff193eac6551984c473864626;p=fw%2Fsdcc diff --git a/src/SDCCcse.h b/src/SDCCcse.h index e398dcc9..1926dd84 100644 --- a/src/SDCCcse.h +++ b/src/SDCCcse.h @@ -28,31 +28,36 @@ #ifndef SDCCCSE_H #define SDCCCSE_H 1 -typedef struct cseDef { - - unsigned int key; - operand *sym ; /* defining symbol */ - iCode *diCode ; /* defining instruction */ +typedef struct cseDef + { -} cseDef ; + int key; + operand *sym; /* defining symbol */ + iCode *diCode; /* defining instruction */ + bitVect *ancestors; /* keys of the symbol's ancestors */ + int fromGlobal:1; /* defining symbol's value computed from a global */ + int fromAddrTaken:1; /* defining symbol's value computed from a */ + /* symbol whose address was taken */ + } +cseDef; cseDef *newCseDef (operand *, iCode *); -int isCseDefEqual ( void *, void *); -int pcseDef (void *, va_list ); -void algebraicOpts (iCode *); -DEFSETFUNC(ifDiCodeIsX); -int ifDiCodeIs (set *,iCode *); -DEFSETFUNC(ifDefSymIsX); -int ifDefSymIs (set *,operand *); -DEFSETFUNC(findPrevIc); -DEFSETFUNC(ifOperandsHave); -DEFSETFUNC(findCheaperOp) ; -int cseBBlock ( eBBlock *,int ,eBBlock **, int); -int cseAllBlocks (eBBlock **,int ); -void ifxOptimize (iCode *,set *,int,eBBlock *,int *,eBBlock **,int); -void unsetDefsAndUses ( iCode *) ; -void updateSpillLocation ( iCode *ic); -void setUsesDefs (operand *,bitVect *,bitVect *,bitVect **); -void replaceAllSymBySym (iCode *,operand *,operand *,bitVect **); +int isCseDefEqual (void *, void *); +int pcseDef (void *, va_list); +DEFSETFUNC (ifDiCodeIsX); +int ifDiCodeIs (set *, iCode *); +DEFSETFUNC (ifDefSymIsX); +int ifDefSymIs (set *, operand *); +DEFSETFUNC (findPrevIc); +DEFSETFUNC (ifOperandsHave); +DEFSETFUNC (findCheaperOp); +int cseBBlock (eBBlock *, int, ebbIndex *); +int cseAllBlocks (ebbIndex *, int computeOnly); +void unsetDefsAndUses (iCode *); +void updateSpillLocation (iCode * ic,int); +void setUsesDefs (operand *, bitVect *, bitVect *, bitVect **); +void replaceAllSymBySym (iCode *, operand *, operand *, bitVect **); +iCode *findBackwardDef(operand *,iCode *); +void ReplaceOpWithCheaperOp(operand **op, operand *cop); #endif