Lines Matching refs:begin
29 void segregate(size_t begin, size_t end,
33 size_t findBoundary(size_t begin, size_t end);
34 void forEachClassRange(size_t begin, size_t end,
44 icfInputs.assign(inputs.begin(), inputs.end()); in ICF()
143 return std::equal(ia->relocs.begin(), ia->relocs.end(), ib->relocs.begin(), in equalsConstant()
179 return std::equal(ia->relocs.begin(), ia->relocs.end(), ib->relocs.begin(), in equalsVariable()
184 size_t ICF::findBoundary(size_t begin, size_t end) { in findBoundary() argument
185 uint64_t beginHash = icfInputs[begin]->icfEqClass[icfPass % 2]; in findBoundary()
186 for (size_t i = begin + 1; i < end; ++i) in findBoundary()
193 void ICF::forEachClassRange(size_t begin, size_t end, in forEachClassRange() argument
195 while (begin < end) { in forEachClassRange()
196 size_t mid = findBoundary(begin, end); in forEachClassRange()
197 func(begin, mid); in forEachClassRange()
198 begin = mid; in forEachClassRange()
265 [&](size_t begin, size_t end) { segregate(begin, end, equalsConstant); }); in run() argument
270 forEachClass([&](size_t begin, size_t end) { in run() argument
271 segregate(begin, end, equalsVariable); in run()
277 forEachClass([&](size_t begin, size_t end) { in run() argument
278 if (end - begin < 2) in run()
280 ConcatInputSection *beginIsec = icfInputs[begin]; in run()
281 for (size_t i = begin + 1; i < end; ++i) in run()
288 size_t begin, size_t end, in segregate() argument
291 while (begin < end) { in segregate()
294 auto bound = std::stable_partition(icfInputs.begin() + begin + 1, in segregate()
295 icfInputs.begin() + end, in segregate()
297 return equals(icfInputs[begin], isec); in segregate()
299 size_t mid = bound - icfInputs.begin(); in segregate()
303 for (size_t i = begin; i < mid; ++i) in segregate()
310 begin = mid; in segregate()