Lines Matching defs:begin
103 void segregate(size_t begin, size_t end, uint32_t eqClassBase, bool constant);
116 size_t findBoundary(size_t begin, size_t end);
118 void forEachClassRange(size_t begin, size_t end,
198 void ICF<ELFT>::segregate(size_t begin, size_t end, uint32_t eqClassBase,
208 while (begin < end) {
212 std::stable_partition(sections.begin() + begin + 1,
213 sections.begin() + end, [&](InputSection *s) {
215 return equalsConstant(sections[begin], s);
216 return equalsVariable(sections[begin], s);
218 size_t mid = bound - sections.begin();
224 for (size_t i = begin; i < mid; ++i)
231 begin = mid;
242 auto rai = ra.begin(), rae = ra.end(), rbi = rb.begin();
342 auto rai = ra.begin(), rae = ra.end(), rbi = rb.begin();
386 template <class ELFT> size_t ICF<ELFT>::findBoundary(size_t begin, size_t end) {
387 uint32_t eqClass = sections[begin]->eqClass[current];
388 for (size_t i = begin + 1; i < end; ++i)
400 void ICF<ELFT>::forEachClassRange(size_t begin, size_t end,
402 while (begin < end) {
403 size_t mid = findBoundary(begin, end);
404 fn(begin, mid);
405 begin = mid;
531 forEachClass([&](size_t begin, size_t end) {
532 segregate(begin, end, eqClassBase, true);
538 forEachClass([&](size_t begin, size_t end) {
539 segregate(begin, end, eqClassBase, false);
546 forEachClassRange(0, sections.size(), [&](size_t begin, size_t end) {
547 if (end - begin == 1)
549 print("selected section " + toString(sections[begin]));
550 for (size_t i = begin + 1; i < end; ++i) {
552 sections[begin]->replace(sections[i]);