Lines Matching defs:begin
38 void segregate(size_t begin, size_t end, EqualsFn);
39 size_t findBoundary(size_t begin, size_t end);
40 void forEachClassRange(size_t begin, size_t end,
60 icfInputs.assign(inputs.begin(), inputs.end());
170 return std::equal(ia->relocs.begin(), ia->relocs.end(), ib->relocs.begin(),
208 if (!std::equal(ia->relocs.begin(), ia->relocs.end(), ib->relocs.begin(), f))
236 size_t ICF::findBoundary(size_t begin, size_t end) {
237 uint64_t beginHash = icfInputs[begin]->icfEqClass[icfPass % 2];
238 for (size_t i = begin + 1; i < end; ++i)
245 void ICF::forEachClassRange(size_t begin, size_t end,
247 while (begin < end) {
248 size_t mid = findBoundary(begin, end);
249 func(begin, mid);
250 begin = mid;
317 forEachClass([&](size_t begin, size_t end) {
318 segregate(begin, end, &ICF::equalsConstant);
324 forEachClass([&](size_t begin, size_t end) {
325 segregate(begin, end, &ICF::equalsVariable);
335 forEachClass([&](size_t begin, size_t end) {
336 if (end - begin < 2)
338 ConcatInputSection *beginIsec = icfInputs[begin];
339 for (size_t i = begin + 1; i < end; ++i)
345 void ICF::segregate(size_t begin, size_t end, EqualsFn equals) {
346 while (begin < end) {
347 // Divide [begin, end) into two. Let mid be the start index of the
350 icfInputs.begin() + begin + 1, icfInputs.begin() + end,
352 return (this->*equals)(icfInputs[begin], isec);
354 size_t mid = bound - icfInputs.begin();
356 // Split [begin, end) into [begin, mid) and [mid, end). We use mid as an
358 for (size_t i = begin; i < mid; ++i)
365 begin = mid;
410 // equivalence-class IDs which begin at 0. Since hashes & unique IDs never