Lines Matching full:begin

46   void segregate(size_t begin, size_t end, bool constant);
55 size_t findBoundary(size_t begin, size_t end);
57 void forEachClassRange(size_t begin, size_t end,
108 void ICF::segregate(size_t begin, size_t end, bool constant) { in segregate() argument
109 while (begin < end) { in segregate()
110 // Divide [Begin, End) into two. Let Mid be the start index of the in segregate()
113 chunks.begin() + begin + 1, chunks.begin() + end, [&](SectionChunk *s) { in segregate()
115 return equalsConstant(chunks[begin], s); in segregate()
116 return equalsVariable(chunks[begin], s); in segregate()
118 size_t mid = bound - chunks.begin(); in segregate()
120 // Split [Begin, End) into [Begin, Mid) and [Mid, End). We use Mid as an in segregate()
122 for (size_t i = begin; i < mid; ++i) in segregate()
129 begin = mid; in segregate()
144 return std::equal(ra.begin(), ra.end(), rb.begin(), rb.end(), in assocEquals()
172 if (!std::equal(a->getRelocs().begin(), a->getRelocs().end(), in equalsConstant()
173 b->getRelocs().begin(), eq)) in equalsConstant()
206 return std::equal(a->getRelocs().begin(), a->getRelocs().end(), in equalsVariable()
207 b->getRelocs().begin(), eq) && in equalsVariable()
211 // Find the first Chunk after Begin that has a different class from Begin.
212 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary() argument
213 for (size_t i = begin + 1; i < end; ++i) in findBoundary()
214 if (chunks[begin]->eqClass[cnt % 2] != chunks[i]->eqClass[cnt % 2]) in findBoundary()
219 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange() argument
221 while (begin < end) { in forEachClassRange()
222 size_t mid = findBoundary(begin, end); in forEachClassRange()
223 fn(begin, mid); in forEachClassRange()
224 begin = mid; in forEachClassRange()
308 forEachClass([&](size_t begin, size_t end) { segregate(begin, end, true); }); in run() argument
314 [&](size_t begin, size_t end) { segregate(begin, end, false); }); in run() argument
320 forEachClass([&](size_t begin, size_t end) { in run() argument
321 if (end - begin == 1) in run()
324 log("Selected " + chunks[begin]->getDebugName()); in run()
325 for (size_t i = begin + 1; i < end; ++i) { in run()
327 chunks[begin]->replace(chunks[i]); in run()