Lines Matching +defs:run +defs:s
66 // 2.8 GHz 40 core machine. Even without threading, LLD's ICF is still
101 void run();
153 // Note on single-thread: if that's the case, they are always (0, 0)
163 static bool isEligible(InputSection *s) {
164 if (!s->isLive() || s->keepUnique || !(s->flags & SHF_ALLOC))
169 if ((s->flags & SHF_WRITE) && s->name != ".data.rel.ro" &&
170 !s->name.starts_with(".data.rel.ro."))
175 if (s->flags & SHF_LINK_ORDER)
181 if (isa<SyntheticSection>(s))
186 if (s->name == ".init" || s->name == ".fini")
192 if (isValidCIdentifier(s->name))
215 sections.begin() + end, [&](InputSection *s) {
217 return equalsConstant(sections[begin], s);
218 return equalsVariable(sections[begin], s);
453 Symbol &s = isec->file->getRelocTargetSym(rel);
454 if (auto *d = dyn_cast<Defined>(&s))
463 template <class ELFT> void ICF<ELFT>::run() {
475 [&](InputSection &s) { s.eqClass[0] = s.eqClass[1] = ++uniqueId; });
479 auto *s = dyn_cast<InputSection>(sec);
480 if (s && s->eqClass[0] == 0) {
481 if (isEligible(s))
482 sections.push_back(s);
486 s->eqClass[0] = s->eqClass[1] = ++uniqueId;
491 parallelForEach(sections, [&](InputSection *s) {
493 s->eqClass[0] = xxh3_64bits(s->content()) | (1U << 31);
500 parallelForEach(sections, [&](InputSection *s) {
501 const RelsOrRelas<ELFT> rels = s->template relsOrRelas<ELFT>();
503 combineRelocHashes(cnt, s, rels.crels);
505 combineRelocHashes(cnt, s, rels.rels);
507 combineRelocHashes(cnt, s, rels.relas);
555 // Change Defined symbol's section field to the canonical one.
584 ICF<ELFT>(ctx).run();