Lines Matching refs:begin
105 void segregate(size_t begin, size_t end, uint32_t eqClassBase, bool constant);
118 size_t findBoundary(size_t begin, size_t end);
120 void forEachClassRange(size_t begin, size_t end,
200 void ICF<ELFT>::segregate(size_t begin, size_t end, uint32_t eqClassBase, in segregate() argument
210 while (begin < end) { in segregate()
214 std::stable_partition(sections.begin() + begin + 1, in segregate()
215 sections.begin() + end, [&](InputSection *s) { in segregate()
217 return equalsConstant(sections[begin], s); in segregate()
218 return equalsVariable(sections[begin], s); in segregate()
220 size_t mid = bound - sections.begin(); in segregate()
226 for (size_t i = begin; i < mid; ++i) in segregate()
233 begin = mid; in segregate()
378 template <class ELFT> size_t ICF<ELFT>::findBoundary(size_t begin, size_t end) { in findBoundary() argument
379 uint32_t eqClass = sections[begin]->eqClass[current]; in findBoundary()
380 for (size_t i = begin + 1; i < end; ++i) in findBoundary()
392 void ICF<ELFT>::forEachClassRange(size_t begin, size_t end, in forEachClassRange() argument
394 while (begin < end) { in forEachClassRange()
395 size_t mid = findBoundary(begin, end); in forEachClassRange()
396 fn(begin, mid); in forEachClassRange()
397 begin = mid; in forEachClassRange()
519 forEachClass([&](size_t begin, size_t end) { in run() argument
520 segregate(begin, end, eqClassBase, true); in run()
526 forEachClass([&](size_t begin, size_t end) { in run() argument
527 segregate(begin, end, eqClassBase, false); in run()
534 forEachClassRange(0, sections.size(), [&](size_t begin, size_t end) { in run() argument
535 if (end - begin == 1) in run()
537 print("selected section " + toString(sections[begin])); in run()
538 for (size_t i = begin + 1; i < end; ++i) { in run()
540 sections[begin]->replace(sections[i]); in run()