Lines Matching refs:isec
148 const ConcatInputSection *isec; member
192 if (auto *isec = r.referent.dyn_cast<InputSection *>()) in getReferentString() local
193 return cast<CStringInputSection>(isec)->getStringRefAtOffset(r.addend); in getReferentString()
196 auto *symIsec = sym->isec(); in getReferentString()
247 nameReloc = mc.isec->getRelocAt(catLayout.nameOffset); in parseMethods()
250 const auto *roIsec = mc.isec->getRelocAt(classLayout.roDataOffset) in parseMethods()
279 formatObjAndSrcFileName(mc.isec)); in parseMethods()
322 const auto *classIsec = cast<ConcatInputSection>(classSym->isec()); in parseClass()
330 if (const auto *r = classSym->isec()->getRelocAt(classLayout.metaClassOffset)) in parseClass()
340 for (const InputSection *isec : inputSections) { in checkCategories() local
341 if (isec->getName() == section_names::objcCatList) in checkCategories()
342 for (const Reloc &r : isec->relocs) { in checkCategories()
451 void eraseISec(ConcatInputSection *isec);
457 void collectSectionWriteInfoFromIsec(const InputSection *isec,
463 void parseProtocolListInfo(const ConcatInputSection *isec, uint32_t secOffset,
467 PointerListInfo parseProtocolListInfo(const ConcatInputSection *isec,
471 void parsePointerListInfo(const ConcatInputSection *isec, uint32_t secOffset,
492 Defined *tryFindDefinedOnIsec(const InputSection *isec, uint32_t offset);
493 Symbol *tryGetSymbolAtIsecOffset(const ConcatInputSection *isec,
495 Defined *tryGetDefinedAtIsecOffset(const ConcatInputSection *isec,
501 void eraseSymbolAtIsecOffset(ConcatInputSection *isec, uint32_t offset);
502 void tryEraseDefinedAtIsecOffset(const ConcatInputSection *isec,
543 const InputSection *isec, InfoWriteSection &catWriteInfo) { in collectSectionWriteInfoFromIsec() argument
545 catWriteInfo.inputSection = const_cast<Section *>(&isec->section); in collectSectionWriteInfoFromIsec()
546 catWriteInfo.align = isec->align; in collectSectionWriteInfoFromIsec()
547 catWriteInfo.outputSection = isec->parent; in collectSectionWriteInfoFromIsec()
552 if (isec->relocs.size()) in collectSectionWriteInfoFromIsec()
553 catWriteInfo.relocTemplate = isec->relocs[0]; in collectSectionWriteInfoFromIsec()
559 ObjcCategoryMerger::tryGetSymbolAtIsecOffset(const ConcatInputSection *isec, in tryGetSymbolAtIsecOffset() argument
561 if (!isec) in tryGetSymbolAtIsecOffset()
563 const Reloc *reloc = isec->getRelocAt(offset); in tryGetSymbolAtIsecOffset()
573 sym = tryFindDefinedOnIsec(definedSym->isec(), in tryGetSymbolAtIsecOffset()
580 Defined *ObjcCategoryMerger::tryFindDefinedOnIsec(const InputSection *isec, in tryFindDefinedOnIsec() argument
582 for (Defined *sym : isec->symbols) in tryFindDefinedOnIsec()
590 ObjcCategoryMerger::tryGetDefinedAtIsecOffset(const ConcatInputSection *isec, in tryGetDefinedAtIsecOffset() argument
592 Symbol *sym = tryGetSymbolAtIsecOffset(isec, offset); in tryGetDefinedAtIsecOffset()
601 ConcatInputSection *isec = dyn_cast<ConcatInputSection>(classSym->isec()); in getClassRo() local
602 if (!isec) in getClassRo()
606 return tryGetDefinedAtIsecOffset(isec, classLayout.roDataOffset + in getClassRo()
610 isec, classLayout.metaClassOffset + classSym->value); in getClassRo()
615 dyn_cast<ConcatInputSection>(metaClass->isec()), in getClassRo()
622 const ConcatInputSection *isec, uint32_t offset) { in tryEraseDefinedAtIsecOffset() argument
623 const Reloc *reloc = isec->getRelocAt(offset); in tryEraseDefinedAtIsecOffset()
632 if (auto *cisec = dyn_cast_or_null<ConcatInputSection>(sym->isec())) in tryEraseDefinedAtIsecOffset()
634 else if (auto *csisec = dyn_cast_or_null<CStringInputSection>(sym->isec())) { in tryEraseDefinedAtIsecOffset()
658 collectSectionWriteInfoFromIsec(catNameSym->isec(), in collectCategoryWriterInfoFromCategory()
669 collectSectionWriteInfoFromIsec(ptrList->isec(), in collectCategoryWriterInfoFromCategory()
682 const ConcatInputSection *isec, uint32_t secOffset, in parseProtocolListInfo() argument
684 assert((isec && (secOffset + target->wordSize <= isec->data.size())) && in parseProtocolListInfo()
687 const Reloc *reloc = isec->getRelocAt(secOffset); in parseProtocolListInfo()
698 ptrListSym->isec()->data.data() + listHeaderLayout.structSizeOffset); in parseProtocolListInfo()
712 assert(((expectedListSize == ptrListSym->isec()->data.size() && in parseProtocolListInfo()
714 (expectedListSizeSwift == ptrListSym->isec()->data.size() && in parseProtocolListInfo()
720 const Reloc *reloc = ptrListSym->isec()->getRelocAt(off); in parseProtocolListInfo()
729 assert((ptrListSym->isec()->getRelocAt(off) == nullptr) && in parseProtocolListInfo()
737 ObjcCategoryMerger::parseProtocolListInfo(const ConcatInputSection *isec, in parseProtocolListInfo() argument
741 parseProtocolListInfo(isec, secOffset, ptrList, sourceLang); in parseProtocolListInfo()
748 void ObjcCategoryMerger::parsePointerListInfo(const ConcatInputSection *isec, in parsePointerListInfo() argument
752 assert(isec && "Trying to parse pointer list from null isec"); in parsePointerListInfo()
753 assert(secOffset + target->wordSize <= isec->data.size() && in parsePointerListInfo()
756 const Reloc *reloc = isec->getRelocAt(secOffset); in parsePointerListInfo()
764 ptrListSym->isec()->data.data() + listHeaderLayout.structSizeOffset); in parsePointerListInfo()
766 ptrListSym->isec()->data.data() + listHeaderLayout.structCountOffset); in parsePointerListInfo()
776 assert(expectedListSize == ptrListSym->isec()->data.size() && in parsePointerListInfo()
781 const Reloc *reloc = ptrListSym->isec()->getRelocAt(off); in parsePointerListInfo()
1142 refFrom->isec()->relocs.push_back(r); in createSymbolReference()
1182 auto *catBodyIsec = dyn_cast<ConcatInputSection>(categorySym->isec()); in collectAndValidateCategoriesData()
1271 void ObjcCategoryMerger::eraseISec(ConcatInputSection *isec) { in eraseISec() argument
1272 isec->live = false; in eraseISec()
1273 for (auto &sym : isec->symbols) in eraseISec()
1414 ConcatInputSection *metaIsec = dyn_cast<ConcatInputSection>(metaRo->isec()); in mergeCategoriesIntoBaseClass()
1416 ConcatInputSection *classIsec = dyn_cast<ConcatInputSection>(classRo->isec()); in mergeCategoriesIntoBaseClass()
1480 void ObjcCategoryMerger::eraseSymbolAtIsecOffset(ConcatInputSection *isec, in eraseSymbolAtIsecOffset() argument
1482 Defined *sym = tryGetDefinedAtIsecOffset(isec, offset); in eraseSymbolAtIsecOffset()
1488 llvm::erase(isec->symbols, sym); in eraseSymbolAtIsecOffset()
1492 llvm::erase_if(isec->relocs, removeAtOff); in eraseSymbolAtIsecOffset()
1496 if (ConcatInputSection *cisec = dyn_cast<ConcatInputSection>(sym->isec())) in eraseSymbolAtIsecOffset()