/freebsd/contrib/llvm-project/lld/MachO/ |
H A D | InputSection.h | 30 class InputSection { 39 virtual ~InputSection() = default; 63 virtual InputSection *canonical() { return this; } in canonical() 64 virtual const InputSection *canonical() const { return this; } in canonical() 67 InputSection(Kind kind, const Section §ion, ArrayRef<uint8_t> data, in InputSection() function 72 InputSection(const InputSection &rhs) in InputSection() function 105 class ConcatInputSection final : public InputSection { 109 : InputSection(ConcatKind, section, data, align) {} in InputSection() function 112 uint64_t getVA() const { return InputSection::getVA(0); } in getVA() 124 const InputSection *canonical() const override { in canonical() [all …]
|
H A D | MarkLive.cpp | 27 InputSection *isec; 31 WhyLiveEntry(InputSection *isec, const WhyLiveEntry *prev) in WhyLiveEntry() 39 virtual void enqueue(InputSection *isec, uint64_t off) = 0; 52 std::conditional_t<RecordWhyLive, WhyLiveEntry, InputSection>; 54 void enqueue(InputSection *isec, uint64_t off) override { in enqueue() 61 void enqueue(InputSection *isec, uint64_t off, const WorklistEntry *prev); 63 const InputSection *getInputSection(const WorklistEntry *) const; 64 WorklistEntry *makeEntry(InputSection *, const WorklistEntry *prev) const; 76 InputSection *isec, uint64_t off, in enqueue() 121 const InputSection *MarkLiveImpl<RecordWhyLive>::getInputSection( in getInputSection() [all …]
|
H A D | InputSection.cpp | 45 void lld::macho::addInputSection(InputSection *inputSection) { in addInputSection() 87 uint64_t InputSection::getFileSize() const { in getFileSize() 91 uint64_t InputSection::getVA(uint64_t off) const { in getVA() 106 const Defined *InputSection::getContainingSymbol(uint64_t off) const { in getContainingSymbol() 114 std::string InputSection::getLocation(uint64_t off) const { in getLocation() 135 std::string InputSection::getSourceLocation(uint64_t off) const { in getSourceLocation() 184 const Reloc *InputSection::getRelocAt(uint32_t off) const { in getRelocAt() 234 auto *referentIsec = minuend.referent.get<InputSection *>(); in writeTo() 261 } else if (auto *referentIsec = r.referent.dyn_cast<InputSection *>()) { in writeTo() 335 : InputSection(WordLiteralKind, section, data, align) { in WordLiteralInputSection() [all …]
|
H A D | Relocations.h | 24 class InputSection; variable 62 llvm::PointerUnion<Symbol *, InputSection *> referent = nullptr; 67 int64_t addend, llvm::PointerUnion<Symbol *, InputSection *> referent) in Reloc() 71 InputSection *getReferentInputSection() const; 74 bool validateSymbolRelocation(const Symbol *, const InputSection *, 118 InputSection *offsetToInputSection(uint64_t *);
|
H A D | EhFrame.h | 93 EhRelocator(InputSection *isec) : isec(isec) {} in EhRelocator() 98 llvm::PointerUnion<Symbol *, InputSection *> target, 102 llvm::PointerUnion<Symbol *, InputSection *> target, 108 InputSection *isec;
|
H A D | Relocations.cpp | 24 InputSection *Reloc::getReferentInputSection() const { in getReferentInputSection() 30 return referent.get<InputSection *>(); in getReferentInputSection() 35 const InputSection *isec, const Reloc &r) { in validateSymbolRelocation() 65 InputSection *macho::offsetToInputSection(uint64_t *off) { in offsetToInputSection() 99 const InputSection *isec = offsetToInputSection(&off); in reportRangeError()
|
H A D | SymbolTable.h | 25 class InputSection; variable 39 Defined *addDefined(StringRef name, InputFile *, InputSection *, 59 Defined *addSynthetic(StringRef name, InputSection *, uint64_t value, 78 void treatUndefinedSymbol(const Undefined &, const InputSection *,
|
H A D | SectionPriorities.h | 18 using SectionPair = std::pair<const InputSection *, const InputSection *>; 56 llvm::DenseMap<const InputSection *, size_t> buildInputSectionPriorities();
|
H A D | SectionPriorities.cpp | 69 DenseMap<const InputSection *, size_t> run(); 73 std::vector<const InputSection *> sections; 83 DenseMap<const InputSection *, int> secToCluster; in CallGraphSort() 85 auto getOrCreateCluster = [&](const InputSection *isec) -> int { in CallGraphSort() 159 DenseMap<const InputSection *, size_t> CallGraphSort::run() { in run() 207 DenseMap<const InputSection *, size_t> orderMap; in run() 233 const InputSection *isec = sections[i]; in run() 352 DenseMap<const InputSection *, size_t> 354 DenseMap<const InputSection *, size_t> sectionPriorities; in buildInputSectionPriorities()
|
H A D | EhFrame.cpp | 109 static void createSubtraction(PointerUnion<Symbol *, InputSection *> a, in createSubtraction() 110 PointerUnion<Symbol *, InputSection *> b, in createSubtraction() 127 PointerUnion<Symbol *, InputSection *> target, in makePcRel() 133 uint64_t off, PointerUnion<Symbol *, InputSection *> target, in makeNegativePcRel()
|
H A D | Writer.h | 17 class InputSection; variable 33 void addNonLazyBindingEntries(const Symbol *, const InputSection *,
|
/freebsd/contrib/llvm-project/lld/ELF/ |
H A D | ICF.cpp | 106 bool constantEq(const InputSection *a, Relocs<RelTy> relsA, 107 const InputSection *b, Relocs<RelTy> relsB); 110 bool variableEq(const InputSection *a, Relocs<RelTy> relsA, 111 const InputSection *b, Relocs<RelTy> relsB); 113 bool equalsConstant(const InputSection *a, const InputSection *b); 114 bool equalsVariable(const InputSection *a, const InputSection *b); 123 SmallVector<InputSection *, 0> sections; 161 static bool isEligible(InputSection *s) { in isEligible() 213 sections.begin() + end, [&](InputSection *s) { in segregate() 238 bool ICF<ELFT>::constantEq(const InputSection *secA, Relocs<RelTy> ra, in constantEq() [all …]
|
H A D | InputSection.cpp | 154 if (!relSec || !cast<InputSection>(relSec)->decodedCrel) { in relsOrRelas() 155 auto *sec = makeThreadLocal<InputSection>(*f, shdr, name); in relsOrRelas() 200 return cast<InputSection>(this)->outSecOff + offset; in getOffset() 210 if (InputSection *isec = es->getParent()) in getOffset() 216 if (InputSection *isec = ms->getParent()) in getOffset() 229 InputSection *sec; in getOutputSection() 230 if (auto *isec = dyn_cast<InputSection>(this)) in getOutputSection() 274 InputSection *InputSectionBase::getLinkOrderDep() const { in getLinkOrderDep() 278 return cast<InputSection>(file->getSections()[link]); in getLinkOrderDep() 350 : InputSection(source.file, source.flags, source.type, source.addralign, {}, in PotentialSpillSection() [all …]
|
H A D | ARMErrataFix.cpp | 73 Patch657417Section(InputSection *p, uint64_t off, uint32_t instr, bool isARM); 87 const InputSection *patchee; 136 Patch657417Section::Patch657417Section(InputSection *p, uint64_t off, in Patch657417Section() 206 static bool branchDestInFirstRegion(const InputSection *isec, uint64_t off, in branchDestInFirstRegion() 229 static bool patchInRange(const InputSection *isec, uint64_t off, in patchInRange() 255 static ScanResult scanCortexA8Errata657417(InputSection *isec, uint64_t &off, in scanCortexA8Errata657417() 338 if (auto *sec = dyn_cast_or_null<InputSection>(def->section)) in init() 377 for (const InputSection *isec : isd.sections) { in insertPatches() 396 SmallVector<InputSection *, 0> tmp; in insertPatches() 398 auto mergeCmp = [](const InputSection *a, const InputSection *b) { in insertPatches() [all …]
|
H A D | InputSection.h | 224 llvm::TinyPtrVector<InputSection *> dependentSections; 229 InputSection *getLinkOrderDep() const; 397 class InputSection : public InputSectionBase { 399 InputSection(InputFile *f, uint64_t flags, uint32_t type, uint32_t addralign, 402 InputSection(ObjFile<ELFT> &f, const typename ELFT::Shdr &header, 432 InputSection *repl = this; 438 void replace(InputSection *other); 440 static InputSection discarded; 454 class PotentialSpillSection : public InputSection { 471 static_assert(sizeof(InputSection) <= 160, "InputSection is too big"); [all …]
|
H A D | AArch64ErrataFix.cpp | 337 static uint64_t scanCortexA53Errata843419(InputSection *isec, uint64_t &off, in scanCortexA53Errata843419() 375 Patch843419Section(InputSection *p, uint64_t off); 388 const InputSection *patchee; 395 Patch843419Section::Patch843419Section(InputSection *p, uint64_t off) in Patch843419Section() 450 if (auto *sec = dyn_cast_or_null<InputSection>(def->section)) in init() 494 for (const InputSection *isec : isd.sections) { in insertPatches() 515 SmallVector<InputSection *, 0> tmp; in insertPatches() 517 auto mergeCmp = [](const InputSection *a, const InputSection *b) { in insertPatches() 532 InputSection *isec, in implementPatch() 579 for (InputSection *isec : isd.sections) { in patchInputSectionDescription()
|
H A D | OutputSections.h | 77 void commitSection(InputSection *isec); 131 SmallVector<InputSection *, 0> storage; 148 InputSection *getFirstInputSection(const OutputSection *os); 149 llvm::ArrayRef<InputSection *> 151 SmallVector<InputSection *, 0> &storage);
|
H A D | OutputSections.cpp | 117 void OutputSection::commitSection(InputSection *isec) { in commitSection() 210 isd->sections.push_back(cast<InputSection>(s)); in finalizeInputSections() 254 for (InputSection *s : isd->sections) in finalizeInputSections() 261 static void sortByOrder(MutableArrayRef<InputSection *> in, in sortByOrder() 263 std::vector<std::pair<int, InputSection *>> v; in sortByOrder() 264 for (InputSection *s : in) in sortByOrder() 518 ArrayRef<InputSection *> sections = getInputSections(*this, storage); in writeTo() 533 InputSection *isec = sections[i]; in writeTo() 594 static void finalizeShtGroup(OutputSection *os, InputSection *section) { in finalizeShtGroup() 662 InputSection *relSec, InputSectionBase *sec) { in relToCrel() [all …]
|
H A D | Thunks.cpp | 103 bool isCompatibleWith(const InputSection &isec, 135 bool isCompatibleWith(const InputSection &isec, 323 InputSection *getTargetInputSection() const override; 334 InputSection *getTargetInputSection() const override; 345 InputSection *getTargetInputSection() const override; 352 PPC32PltCallStub(const InputSection &isec, const Relocation &rel, in PPC32PltCallStub() 358 bool isCompatibleWith(const InputSection &isec, const Relocation &rel) const override; 387 bool isCompatibleWith(const InputSection &isec, 417 bool isCompatibleWith(const InputSection &isec, 443 bool isCompatibleWith(const InputSection &isec, [all …]
|
H A D | Thunks.h | 48 virtual InputSection *getTargetInputSection() const { return nullptr; } in getTargetInputSection() 52 virtual bool isCompatibleWith(const InputSection &, in isCompatibleWith() argument 70 Thunk *addThunk(const InputSection &isec, Relocation &rel);
|
H A D | InputFiles.cpp | 449 if (s != &InputSection::discarded && s->flags & SHF_ALLOC) in handleSectionGroup() 465 if (!s || s == &InputSection::discarded) in handleSectionGroup() 621 this->sections[i] = &InputSection::discarded; in parse() 630 this->sections[i] = &InputSection::discarded; in parse() 634 InputSection isec(*this, sec, name); in parse() 645 in.attributes = std::make_unique<InputSection>(*this, sec, name); in parse() 657 this->sections[i] = &InputSection::discarded; in parse() 689 this->sections[secIndex] = &InputSection::discarded; in parse() 784 if (this->sections[i] == &InputSection::discarded) in initializeSections() 810 this->sections[i] = &InputSection::discarded; in initializeSections() [all …]
|
H A D | DWARF.h | 21 class InputSection; variable 36 InputSection *getInfoSection() const { in getInfoSection() 37 return cast<InputSection>(infoSection.sec); in getInfoSection()
|
H A D | AArch64ErrataFix.h | 19 class InputSection; variable 40 llvm::DenseMap<InputSection *, std::vector<const Defined *>> sectionMap;
|
H A D | ARMErrataFix.h | 19 class InputSection; variable 40 llvm::DenseMap<InputSection *, std::vector<const Defined *>> sectionMap;
|
H A D | Writer.cpp | 125 auto *copy = make<InputSection>(cast<InputSection>(*s)); in copySectionsIntoPartitions() 401 InputSection *isec = dyn_cast_or_null<InputSection>(s); in markUsedLocalSymbols() 817 InputSection *sec = in.gotPlt.get(); in setReservedSymbolSections() 819 sec = in.mipsGot ? cast<InputSection>(in.mipsGot.get()) in setReservedSymbolSections() 820 : cast<InputSection>(in.got.get()); in setReservedSymbolSections() 1116 SmallVector<InputSection *, 0> unorderedSections; in sortISDBySectionOrder() 1117 SmallVector<std::pair<InputSection *, int>, 0> orderedSections; in sortISDBySectionOrder() 1121 for (InputSection *isec : isd->sections) { in sortISDBySectionOrder() 1179 for (InputSection *isec : ArrayRef(unorderedSections).slice(0, insPt)) in sortISDBySectionOrder() 1181 for (std::pair<InputSection *, int> p : orderedSections) in sortISDBySectionOrder() [all …]
|