Lines Matching refs:Begin
48 void segregate(size_t Begin, size_t End, bool Constant);
58 size_t findBoundary(size_t Begin, size_t End);
60 void forEachClassRange(size_t Begin, size_t End,
105 void ICF::segregate(size_t Begin, size_t End, bool Constant) { in segregate() argument
106 while (Begin < End) { in segregate()
110 Chunks.begin() + Begin + 1, Chunks.begin() + End, [&](SectionChunk *S) { in segregate()
112 return equalsConstant(Chunks[Begin], S); in segregate()
113 return equalsVariable(Chunks[Begin], S); in segregate()
119 for (size_t I = Begin; I < Mid; ++I) in segregate()
126 Begin = Mid; in segregate()
195 size_t ICF::findBoundary(size_t Begin, size_t End) { in findBoundary() argument
196 for (size_t I = Begin + 1; I < End; ++I) in findBoundary()
197 if (Chunks[Begin]->Class[Cnt % 2] != Chunks[I]->Class[Cnt % 2]) in findBoundary()
202 void ICF::forEachClassRange(size_t Begin, size_t End, in forEachClassRange() argument
204 while (Begin < End) { in forEachClassRange()
205 size_t Mid = findBoundary(Begin, End); in forEachClassRange()
206 Fn(Begin, Mid); in forEachClassRange()
207 Begin = Mid; in forEachClassRange()
290 forEachClass([&](size_t Begin, size_t End) { segregate(Begin, End, true); }); in run() argument
296 [&](size_t Begin, size_t End) { segregate(Begin, End, false); }); in run() argument
302 forEachClass([&](size_t Begin, size_t End) { in run() argument
303 if (End - Begin == 1) in run()
306 log("Selected " + Chunks[Begin]->getDebugName()); in run()
307 for (size_t I = Begin + 1; I < End; ++I) { in run()
309 Chunks[Begin]->replace(Chunks[I]); in run()