@@ -136,6 +136,23 @@ namespace vISA
136136
137137 void setOffset (unsigned short o) { offset = o; }
138138
139+ bool hasOverlap (SBFootprint* liveFootprint) const
140+ {
141+ SBFootprint* curFootprint2Ptr = liveFootprint;
142+ while (curFootprint2Ptr)
143+ {
144+ // Negative of no overlap: !(LeftB > curFootprint2Ptr->RightB || RightB < curFootprint2Ptr->LeftB)
145+ if (fType == curFootprint2Ptr->fType &&
146+ LeftB <= curFootprint2Ptr->RightB && RightB >= curFootprint2Ptr->LeftB )
147+ {
148+ return true ;
149+ }
150+ curFootprint2Ptr = curFootprint2Ptr->next ;
151+ }
152+
153+ return false ;
154+ }
155+
139156 bool hasOverlap (SBFootprint *liveFootprint, unsigned short &internalOffset) const
140157 {
141158 SBFootprint *curFootprint2Ptr = liveFootprint;
@@ -984,14 +1001,11 @@ namespace vISA
9841001 SBFootprint* getFootprintForFlag (G4_Operand* opnd,
9851002 Gen4_Operand_Number opnd_num,
9861003 G4_INST* inst);
987- void getGRFBuckets (SBNode *node,
988- SBFootprint* footprint,
989- Gen4_Operand_Number opndNum,
990- std::vector<SBBucketDescr>& BDvec);
9911004 bool getFootprintForOperand (SBNode *node,
9921005 G4_INST *inst,
9931006 G4_Operand* opnd,
9941007 Gen4_Operand_Number opnd_num);
1008+ void getGRFBuckets (SBNode* node, SBFootprint* footprint, Gen4_Operand_Number opndNum, std::vector<SBBucketDescr>& BDvec, bool GRFOnly);
9951009 bool getGRFFootPrintOperands (SBNode *node,
9961010 G4_INST *inst,
9971011 Gen4_Operand_Number first_opnd,
0 commit comments