00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef LEGOUTIL_ADDREMOVE_HEADER
00012 #define LEGOUTIL_ADDREMOVE_HEADER
00013
00014 #include "lego.H"
00015
00016 opList *AddToList (opList *, legoOp *, int = 1, double = 0.0);
00017 edgeList *AddToList (edgeList *, opEdges *, int = 1);
00018 regionList *AddToList (regionList *, legoRegion *, int = 1);
00019
00020 opList *RemoveFromList (opList *, legoOp *, double = -1.0);
00021 edgeList *RemoveFromList (edgeList *, opEdges *);
00022 regionList *RemoveFromList (regionList *, legoRegion *);
00023
00024
00025 #define EDGEPORT_DONTCARE (-1)
00026
00027 opEdges *AddEdge (legoOp *, legoOp *,legoProc *,enum edgeTypes,int = 0,int = 0);
00028 opEdges *AddEdge (legoOp *, legoOp *,enum edgeTypes, int = 0, int = 0);
00029 void AddMidOp (legoOp *, legoOp *);
00030 int RemoveEdge (int, int, legoProc *, enum edgeTypes,
00031 int = EDGEPORT_DONTCARE, int = EDGEPORT_DONTCARE);
00032 int RemoveEdge (legoOp *, legoOp *, legoProc *, enum edgeTypes,
00033 int = EDGEPORT_DONTCARE, int = EDGEPORT_DONTCARE);
00034 int RemoveEdge (legoOp *, legoOp *, enum edgeTypes,
00035 int = EDGEPORT_DONTCARE, int = EDGEPORT_DONTCARE);
00036 void RemoveMidOp (legoOp *, legoProc *, int = 0);
00037 void RemoveMidOp (legoOp *, int = 0);
00038 void RemoveLastOp (legoOp *, int = 0);
00039 void RemoveFinalOp (legoOp *, int = 0);
00040 void RemoveFirstOp (legoOp *, int = 0);
00041 void RemoveVeryLastOp (legoOp *, int = 0);
00042
00043 legoBB *AddBBAlongEdge (opEdges *, legoProc *);
00044 legoRegion *SplitParentBlockBeforeOp(legoOp *);
00045
00046 flags *AddFlag (int, legoRegion *);
00047 flags *AddFlag (int, legoOp *);
00048 void RemoveFlag (int, legoRegion *);
00049 void RemoveFlag (int, legoOp *);
00050
00051 attrs *AddLcAttribute (char *, legoOprd *, legoRegion *, legoProc *);
00052 attrs *AddLcAttribute (char *, legoOprd *, legoOp *, legoProc *);
00053 attrs *AddLcAttribute (char *, legoOprd *, opEdges *, legoProc *);
00054 void RemoveLcAttribute (char *, legoRegion *, legoProc *);
00055 void RemoveLcAttribute (char *, legoOp *, legoProc *);
00056 void RemoveLcAttribute (char *, opEdges *, legoProc *);
00057
00058 attrs *AddLiveAttribute (legoOprd *, legoRegion *, legoProc *);
00059 attrs *AddLiveAttribute (legoOprd *, legoOp *, legoProc *);
00060 attrs *AddLiveAttribute (legoOprd *, opEdges *, legoProc *);
00061 void RemoveLiveAttribute (legoRegion *, legoProc *);
00062 void RemoveLiveAttribute (legoOp *, legoProc *);
00063 void RemoveLiveAttribute (opEdges *, legoProc *);
00064
00065 attrList *AddFreqAttribute (int, int, opEdges *);
00066 void RemoveFreqAttribute (opEdges *);
00067
00068 void ClearMarks (long long, legoRegion *);
00069 void ClearMarks (long long, opEdges *);
00070
00071
00072 attrs *AddPointerAttribute (enum attrTypes, char *, legoOprd *,
00073 void *object, int objtype, legoProc *);
00074
00075 #endif // LEGOUTIL_ADDREMOVE_HEADER
00076