| /freebsd/contrib/llvm-project/lld/ELF/ |
| H A D | CallGraphSort.cpp | 93 DenseMap<const InputSectionBase *, int> run(); 98 std::vector<const InputSectionBase *> sections; 110 std::pair<const InputSectionBase *, const InputSectionBase *>; 117 DenseMap<const InputSectionBase *, int> secToCluster; in CallGraphSort() 119 auto getOrCreateNode = [&](const InputSectionBase *isec) -> int { in CallGraphSort() 130 const auto *fromSB = cast<InputSectionBase>(c.first.first); in CallGraphSort() 131 const auto *toSB = cast<InputSectionBase>(c.first.second); in CallGraphSort() 194 DenseMap<const InputSectionBase *, int> CallGraphSort::run() { in run() 237 DenseMap<const InputSectionBase *, int> orderMap; in run() 279 static DenseMap<const InputSectionBase *, int> [all …]
|
| H A D | MarkLive.cpp | 45 using SecOffset = std::pair<InputSectionBase *, unsigned>; 48 using LiveItem = std::variant<InputSectionBase *, Symbol *, SecOffset>; 65 void enqueue(InputSectionBase *sec, uint64_t offset, Symbol *sym, 71 void resolveReloc(InputSectionBase &sec, RelTy &rel, bool fromFDE); 85 DenseMap<StringRef, SmallVector<InputSectionBase *, 0>> cNamedSections; 96 static uint64_t getAddend(Ctx &ctx, InputSectionBase &sec, in getAddend() 103 static uint64_t getAddend(Ctx &, InputSectionBase &sec, in getAddend() 110 static uint64_t getAddend(Ctx &, InputSectionBase &sec, in getAddend() 117 void MarkLive<ELFT, TrackWhyLive>::resolveReloc(InputSectionBase &sec, in resolveReloc() 128 auto *relSec = dyn_cast_or_null<InputSectionBase>(d->section); in resolveReloc() [all …]
|
| H A D | InputSection.h | 144 class InputSectionBase : public SectionBase { 147 const InputSectionBase *sec; 151 const InputSectionBase &sec; 157 InputSectionBase(ObjFile<ELFT> &file, const typename ELFT::Shdr &header, 160 InputSectionBase(InputFile *file, StringRef name, uint32_t type, 238 InputSectionBase *nextInSectionGroup = nullptr; 333 class MergeInputSection : public InputSectionBase { 378 EhSectionPiece(size_t off, InputSectionBase *sec, uint32_t size, in EhSectionPiece() 388 InputSectionBase *sec; 394 class EhInputSection : public InputSectionBase { [all …]
|
| H A D | LinkerScript.cpp | 49 StringRef LinkerScript::getOutputSectionName(const InputSectionBase *s) const { in getOutputSectionName() 54 if (InputSectionBase *rel = isec->getRelocatedSection()) { in getOutputSectionName() 443 bool LinkerScript::shouldKeep(InputSectionBase *s) { in shouldKeep() 455 static bool matchConstraints(ArrayRef<InputSectionBase *> sections, in matchConstraints() 461 sections, [](InputSectionBase *sec) { return sec->flags & SHF_WRITE; }); in matchConstraints() 467 static void sortSections(MutableArrayRef<InputSectionBase *> vec, in sortSections() 469 auto alignmentComparator = [](InputSectionBase *a, InputSectionBase *b) { in sortSections() 475 auto nameComparator = [](InputSectionBase *a, InputSectionBase *b) { in sortSections() 478 auto priorityComparator = [](InputSectionBase *a, InputSectionBase *b) { in sortSections() 508 static void sortInputSections(Ctx &ctx, MutableArrayRef<InputSectionBase *> vec, in sortInputSections() [all …]
|
| H A D | InputSection.cpp | 37 std::string elf::toStr(Ctx &ctx, const InputSectionBase *sec) { in toStr() 42 const InputSectionBase *sec) { in operator <<() 54 InputSectionBase::InputSectionBase(InputFile *file, StringRef name, in InputSectionBase() function in InputSectionBase 97 InputSectionBase::InputSectionBase(ObjFile<ELFT> &file, in InputSectionBase() function in InputSectionBase 100 : InputSectionBase(&file, name, hdr.sh_type, in InputSectionBase() 113 size_t InputSectionBase::getSize() const { in getSize() 120 static void decompressAux(Ctx &ctx, const InputSectionBase &sec, uint8_t *out, in decompressAux() 131 void InputSectionBase::decompress() const { in decompress() 140 RelsOrRelas<ELFT> InputSectionBase::relsOrRelas(bool supportsCrel) const { in relsOrRelas() 153 InputSectionBase *const &relSec = f->getSections()[relSecIdx]; in relsOrRelas() [all …]
|
| H A D | LinkerScript.h | 33 class InputSectionBase; variable 242 SmallVector<InputSectionBase *, 0> sectionBases; 321 StringRef getOutputSectionName(const InputSectionBase *s) const; 329 SmallVector<InputSectionBase *, 0> 331 ArrayRef<InputSectionBase *>, const SectionBase &outCmd); 333 SmallVector<InputSectionBase *, 0> createInputSectionList(OutputSection &cmd); 366 void discard(InputSectionBase &s); 379 bool shouldKeep(InputSectionBase *s); 447 SmallVector<const InputSectionBase *, 0> orphanSections; 466 llvm::DenseMap<InputSectionBase *, PotentialSpillList> potentialSpillLists;
|
| H A D | BPSectionOrderer.cpp | 24 using Section = elf::InputSectionBase; 29 DenseMap<const InputSectionBase *, Defined *> secToSym; 65 DenseMap<const InputSectionBase *, int> elf::runBalancedPartitioning( in runBalancedPartitioning() 70 SmallVector<InputSectionBase *> sections; in runBalancedPartitioning()
|
| H A D | CallGraphSort.h | 16 class InputSectionBase; variable 18 llvm::DenseMap<const InputSectionBase *, int>
|
| H A D | BPSectionOrderer.h | 22 class InputSectionBase; variable 30 llvm::DenseMap<const InputSectionBase *, int>
|
| H A D | InputFiles.h | 57 SmallVector<InputSectionBase *, 0> sections; 83 ArrayRef<InputSectionBase *> getSections() const { in getSections() 87 void cacheDecodedCrel(size_t i, InputSectionBase *s) { sections[i] = s; } in cacheDecodedCrel() 303 InputSectionBase *getRelocTarget(uint32_t idx, uint32_t info); 304 InputSectionBase *createInputSection(uint32_t idx, const Elf_Shdr &sec,
|
| H A D | DWARF.h | 25 InputSectionBase *sec = nullptr; 84 std::optional<llvm::RelocAddrEntry> findAux(const InputSectionBase &sec,
|
| H A D | OutputSections.h | 77 void recordSection(InputSectionBase *isec); 124 void sort(llvm::function_ref<int(InputSectionBase *s)> order);
|
| H A D | EhFrame.cpp | 36 EhReader(InputSectionBase *s, ArrayRef<uint8_t> d) : isec(s), d(d) {} in EhReader() 54 InputSectionBase *isec;
|
| H A D | Writer.cpp | 126 SmallVector<InputSectionBase *, 0> newSections; in copySectionsIntoPartitions() 129 for (InputSectionBase *s : ctx.inputSections) { in copySectionsIntoPartitions() 417 for (InputSectionBase *s : f->getSections()) { in markUsedLocalSymbols() 522 InputSectionBase *isec = nullptr; in addSectionSymbols() 529 for (InputSectionBase *s : isd->sections) { in addSectionSymbols() 1050 DenseMap<const InputSectionBase *, int> &order) { in maybeShuffle() argument 1054 SmallVector<InputSectionBase *, 0> matched, sections = ctx.inputSections; in maybeShuffle() 1058 for (InputSectionBase *sec : sections) in maybeShuffle() 1073 for (InputSectionBase *&sec : sections) in maybeShuffle() 1081 for (InputSectionBase *sec : sections) { in maybeShuffle() [all …]
|
| H A D | SyntheticSections.h | 442 DynamicReloc(RelType type, const InputSectionBase *inputSec, in DynamicReloc() 448 DynamicReloc(RelType type, const InputSectionBase *inputSec, 454 DynamicReloc(RelType type, const InputSectionBase *inputSec, in DynamicReloc() 476 const InputSectionBase *inputSec; 518 void addSymbolReloc(RelType dynType, InputSectionBase &isec, 527 void addRelativeReloc(RelType dynType, InputSectionBase &isec, in addRelativeReloc() 537 InputSectionBase &isec, 541 void addReloc(DynamicReloc::Kind kind, RelType dynType, InputSectionBase &sec, in addReloc() 611 const InputSectionBase *inputSec; 1262 return sec->kind() == InputSectionBase::Synthetic && in classof() [all …]
|
| H A D | OutputSections.cpp | 105 void OutputSection::recordSection(InputSectionBase *isec) { in recordSection() 212 for (InputSectionBase *s : isd->sectionBases) { in finalizeInputSections() 279 llvm::function_ref<int(InputSectionBase *s)> order) { in sortByOrder() 295 void OutputSection::sort(llvm::function_ref<int(InputSectionBase *s)> order) { in sort() 629 ArrayRef<InputSectionBase *> sections = section->file->getSections(); in finalizeShtGroup() 683 InputSectionBase *sec) { in relToCrel() 710 InputSectionBase *sec = relSec->getRelocatedSection(); in finalizeNonAllocCrel() 770 InputSectionBase *s = first->getRelocatedSection(); in finalize() 886 sort([](InputSectionBase *s) { return getPriority(s->name); }); in sortInitFini()
|
| H A D | Config.h | 44 class InputSectionBase; variable 286 llvm::MapVector<std::pair<const InputSectionBase *, const InputSectionBase *>, 553 InputSectionBase *section; 560 InputSectionBase *sec; 676 SmallVector<InputSectionBase *, 0> inputSections;
|
| H A D | Target.cpp | 92 for (InputSectionBase *d : ctx.inputSections) { in getErrorPlace() 152 void TargetInfo::relocateAlloc(InputSectionBase &sec, uint8_t *buf) const { in relocateAlloc()
|
| H A D | InputFiles.cpp | 404 static void handleSectionGroup(ArrayRef<InputSectionBase *> sections, in handleSectionGroup() 410 if (InputSectionBase *s = sections[index]) in handleSectionGroup() 423 InputSectionBase *head; in handleSectionGroup() 424 InputSectionBase *prev = nullptr; in handleSectionGroup() 426 InputSectionBase *s = sections[index]; in handleSectionGroup() 854 InputSectionBase *s = getRelocTarget(i, info); in initializeSections() 896 InputSectionBase *linkSec = nullptr; in initializeSections() 1030 InputSectionBase *ObjFile<ELFT>::getRelocTarget(uint32_t idx, uint32_t info) { in getRelocTarget() 1032 InputSectionBase *target = this->sections[info]; in getRelocTarget() 1052 InputSectionBase *ObjFile<ELFT>::createInputSection(uint32_t idx, in createInputSection() [all …]
|
| H A D | Thunks.h | 45 InputSectionBase §ion);
|
| H A D | Relocations.cpp | 76 static void printLocation(ELFSyncStream &s, InputSectionBase &sec, in printLocation() 408 explicit OffsetGetter(InputSectionBase &sec) { in OffsetGetter() 454 void scanSection(InputSectionBase &s, bool isEH = false); 458 InputSectionBase *sec; 724 InputSectionBase &sec = *l.sec; in reportUndefinedSymbol() 792 InputSectionBase &sec, uint64_t offset) { in maybeReportUndefined() 843 static void addRelativeReloc(Ctx &ctx, InputSectionBase &isec, in addRelativeReloc() 1276 InputSectionBase &c, uint64_t offset, in handleMipsTlsRelocation() 1291 static unsigned handleAArch64PAuthTlsRelocation(InputSectionBase *sec, in handleAArch64PAuthTlsRelocation() 1613 static void checkPPC64TLSRelax(InputSectionBase &sec, Relocs<RelTy> rels) { in checkPPC64TLSRelax() [all …]
|
| H A D | Symbols.cpp | 527 InputSectionBase *errSec, uint64_t errOffset) { in reportDuplicate() 552 auto *sec1 = cast<InputSectionBase>(d->section); in reportDuplicate() 570 dyn_cast_or_null<InputSectionBase>(other.section), in checkDuplicate()
|
| /freebsd/contrib/llvm-project/lld/ELF/Arch/ |
| H A D | RISCV.cpp | 46 void relocateAlloc(InputSectionBase &sec, uint8_t *buf) const override; 592 void RISCV::relocateAlloc(InputSectionBase &sec, uint8_t *buf) const { in relocateAlloc() 1092 unsigned &mergedXlen, const InputSectionBase *sec, in mergeArch() 1118 const InputSectionBase *oldSection, in mergeAtomic() 1119 const InputSectionBase *newSection, in mergeAtomic() 1134 auto reportUnknownAbiError = [&](const InputSectionBase *section, in mergeAtomic() 1202 const SmallVector<InputSectionBase *, 0> §ions) { in mergeAttributesSection() argument 1205 const InputSectionBase *firstStackAlign = nullptr; in mergeAttributesSection() 1206 const InputSectionBase *firstAtomicAbi = nullptr; in mergeAttributesSection() 1215 for (const InputSectionBase *sec : sections) { in mergeAttributesSection() [all …]
|
| H A D | Hexagon.cpp | 490 const SmallVector<InputSectionBase *, 0> §ions) { in mergeAttributesSection() argument 497 for (const InputSectionBase *sec : sections) { in mergeAttributesSection() 571 SmallVector<InputSectionBase *, 0> sections; in mergeHexagonAttributesSections() 572 llvm::erase_if(ctx.inputSections, [&](InputSectionBase *s) { in mergeHexagonAttributesSections()
|
| H A D | TargetImpl.h | 61 for (InputSectionBase *sb : f->getSections()) { in applyBranchToBranchOptImpl()
|