/external/llvm-project/lld/COFF/ |
D | ICF.cpp | 48 bool assocEquals(const SectionChunk *a, const SectionChunk *b); 50 bool equalsConstant(const SectionChunk *a, const SectionChunk *b); 51 bool equalsVariable(const SectionChunk *a, const SectionChunk *b); 53 bool isEligible(SectionChunk *c); 62 std::vector<SectionChunk *> chunks; 78 bool ICF::isEligible(SectionChunk *c) { in isEligible() 107 chunks.begin() + begin + 1, chunks.begin() + end, [&](SectionChunk *s) { in segregate() 128 bool ICF::assocEquals(const SectionChunk *a, const SectionChunk *b) { in assocEquals() 131 auto considerForICF = [](const SectionChunk &assoc) { in assocEquals() 139 [&](const SectionChunk &ia, const SectionChunk &ib) { in assocEquals() [all …]
|
D | Chunks.h | 180 class SectionChunk final : public Chunk { 188 friend SectionChunk; variable 201 SectionChunk(ObjFile *file, const coff_section *header); 232 void addAssociative(SectionChunk *child); 267 AssociatedIterator, std::forward_iterator_tag, SectionChunk> { 270 AssociatedIterator(SectionChunk *head) : cur(head) {} in AssociatedIterator() 273 SectionChunk &operator*() const { return *cur; } 274 SectionChunk &operator*() { return *cur; } 281 SectionChunk *cur = nullptr; 298 static SectionChunk *findByName(ArrayRef<SectionChunk *> sections, [all …]
|
D | Chunks.cpp | 32 SectionChunk::SectionChunk(ObjFile *f, const coff_section *h) in SectionChunk() function in lld::coff::SectionChunk 58 static_assert(sizeof(SectionChunk) <= 88, "SectionChunk grew unexpectedly"); 69 static bool checkSecRel(const SectionChunk *sec, OutputSection *os) { in checkSecRel() 78 static void applySecRel(const SectionChunk *sec, uint8_t *off, in applySecRel() 100 void SectionChunk::applyRelX64(uint8_t *off, uint16_t type, OutputSection *os, in applyRelX64() 120 void SectionChunk::applyRelX86(uint8_t *off, uint16_t type, OutputSection *os, in applyRelX86() 183 void SectionChunk::applyRelARM(uint8_t *off, uint16_t type, OutputSection *os, in applyRelARM() 249 static void applySecRelLow12A(const SectionChunk *sec, uint8_t *off, in applySecRelLow12A() 255 static void applySecRelHigh12A(const SectionChunk *sec, uint8_t *off, in applySecRelHigh12A() 268 static void applySecRelLdr(const SectionChunk *sec, uint8_t *off, in applySecRelLdr() [all …]
|
D | CallGraphSort.cpp | 53 DenseMap<const SectionChunk *, int> run(); 57 std::vector<const SectionChunk *> sections; 68 using SectionPair = std::pair<const SectionChunk *, const SectionChunk *>; 75 DenseMap<const SectionChunk *, int> secToCluster; in CallGraphSort() 77 auto getOrCreateNode = [&](const SectionChunk *isec) -> int { in CallGraphSort() 88 const auto *fromSec = cast<SectionChunk>(c.first.first->repl); in CallGraphSort() 89 const auto *toSec = cast<SectionChunk>(c.first.second->repl); in CallGraphSort() 152 DenseMap<const SectionChunk *, int> CallGraphSort::run() { in run() 195 DenseMap<const SectionChunk *, int> orderMap; in run() 218 const SectionChunk *sc = sections[i]; in run() [all …]
|
D | InputFiles.h | 56 class SectionChunk; variable 144 ArrayRef<SectionChunk *> getDebugChunks() { return debugChunks; } in getDebugChunks() 145 ArrayRef<SectionChunk *> getSXDataChunks() { return sxDataChunks; } in getSXDataChunks() 146 ArrayRef<SectionChunk *> getGuardFidChunks() { return guardFidChunks; } in getGuardFidChunks() 147 ArrayRef<SectionChunk *> getGuardIATChunks() { return guardIATChunks; } in getGuardIATChunks() 148 ArrayRef<SectionChunk *> getGuardLJmpChunks() { return guardLJmpChunks; } in getGuardLJmpChunks() 233 SectionChunk * 280 std::vector<SectionChunk *> resourceChunks; 283 std::vector<SectionChunk *> debugChunks; 287 std::vector<SectionChunk *> sxDataChunks; [all …]
|
D | MarkLive.cpp | 29 SmallVector<SectionChunk *, 256> worklist; in markLive() 35 if (auto *sc = dyn_cast<SectionChunk>(c)) in markLive() 39 auto enqueue = [&](SectionChunk *c) { in markLive() 60 SectionChunk *sc = worklist.pop_back_val(); in markLive() 69 for (SectionChunk &c : sc->children()) in markLive()
|
D | CallGraphSort.h | 16 class SectionChunk; variable 18 llvm::DenseMap<const SectionChunk *, int> computeCallGraphProfileOrder();
|
D | PDB.h | 27 class SectionChunk; variable 36 getFileLineCodeView(const SectionChunk *c, uint32_t addr);
|
D | Writer.cpp | 228 ArrayRef<SectionChunk *> symIdxChunks, 231 ArrayRef<SectionChunk *> symIdxChunks, 429 SectionChunk *sc = dyn_cast_or_null<SectionChunk>(os->chunks[i]); in createThunks() 522 SectionChunk *sc = dyn_cast_or_null<SectionChunk>(c); in verifyRanges() 673 if (auto *sec = dyn_cast<SectionChunk>(c)) in sortBySectionOrder() 730 SectionChunk *sc1 = dyn_cast_or_null<SectionChunk>(s); in fixGnuImportChunks() 731 SectionChunk *sc2 = dyn_cast_or_null<SectionChunk>(t); in fixGnuImportChunks() 797 static bool shouldStripSectionSuffix(SectionChunk *sc, StringRef name) { in shouldStripSectionSuffix() 818 DenseMap<const SectionChunk *, int> order = computeCallGraphProfileOrder(); in sortSections() 867 auto *sc = dyn_cast<SectionChunk>(c); in createSections() [all …]
|
D | SymbolTable.h | 33 class SectionChunk; variable 93 SectionChunk *c = nullptr, uint32_t sectionOffset = 0); 106 SectionChunk *newSc = nullptr,
|
D | InputFiles.cpp | 214 static SectionChunk *const pendingComdat = reinterpret_cast<SectionChunk *>(1); 228 SectionChunk *ObjFile::readSection(uint32_t sectionNumber, in readSection() 273 auto *c = make<SectionChunk>(this, sec); in readSection() 315 SectionChunk *parent = sparseChunks[parentIndex]; in readAssociativeDefinition() 341 SectionChunk *c = readSection(sectionNumber, def, ""); in readAssociativeDefinition() 362 SectionChunk *sc = sparseChunks[sectionNumber]; in recordPrevailingSymbolForMingw() 384 SectionChunk *sc = sparseChunks[sym.getSectionNumber()]; in createRegular() 501 SectionChunk *leaderChunk = nullptr; in handleComdatSelection() 573 SectionChunk newChunk(this, getSection(sym)); in handleComdatSelection() 688 SectionChunk *c = readSection(sectionNumber, def, getName()); in createDefined() [all …]
|
D | SymbolTable.cpp | 87 static Symbol *getSymbol(SectionChunk *sc, uint32_t addr) { in getSymbol() 113 getFileLineDwarf(const SectionChunk *c, uint32_t addr) { in getFileLineDwarf() 125 getFileLine(const SectionChunk *c, uint32_t addr) { in getFileLine() 151 auto *sc = dyn_cast<SectionChunk>(c); in getSymbolLocations() 315 SectionChunk *sc = dyn_cast_or_null<SectionChunk>(refptr->getChunk()); in handleMinGWAutomaticImport() 552 static std::string getSourceLocationObj(ObjFile *file, SectionChunk *sc, in getSourceLocationObj() 569 static std::string getSourceLocation(InputFile *file, SectionChunk *sc, in getSourceLocation() 588 SectionChunk *newSc, in reportDuplicate() 653 const coff_symbol_generic *sym, SectionChunk *c, in addRegular()
|
D | Config.h | 33 class SectionChunk; variable 212 llvm::MapVector<std::pair<const SectionChunk *, const SectionChunk *>,
|
D | LLDMapFile.cpp | 35 DenseMap<const SectionChunk *, SmallVector<DefinedRegular *, 4>>; 112 auto *sc = dyn_cast<SectionChunk>(c); in writeLLDMapFile()
|
D | MapFile.cpp | 253 std::vector<std::pair<SectionChunk *, SectionChunk *>> ChunkRanges; in writeMapFile() 255 auto *sc = dyn_cast<SectionChunk>(c); in writeMapFile()
|
D | Symbols.h | 198 SectionChunk *c = nullptr) 209 SectionChunk *getChunk() const { return *data; } in getChunk() 212 SectionChunk **data;
|
D | PDB.cpp | 615 if (auto *secChunk = dyn_cast_or_null<SectionChunk>(c)) { in createSectionContrib() 647 SectionChunk::consumeDebugMagic(relocatedDebugContents, ".debug$S"); in handleDebugS() 820 static ArrayRef<uint8_t> relocateDebugChunk(SectionChunk &debugChunk) { in relocateDebugChunk() 838 for (SectionChunk *debugChunk : source->file->getDebugChunks()) { in addDebugSymbols() 888 auto *secChunk = dyn_cast<SectionChunk>(c); in createModuleDBI() 1473 static bool findLineTable(const SectionChunk *c, uint32_t addr, in findLineTable() 1481 for (SectionChunk *dbgC : c->file->getDebugChunks()) { in findLineTable() 1498 SectionChunk::consumeDebugMagic(dbgC->getContents(), ".debug$S"); in findLineTable() 1556 lld::coff::getFileLineCodeView(const SectionChunk *c, uint32_t addr) { in getFileLineCodeView()
|
D | Driver.cpp | 916 if (auto *sec = dyn_cast<SectionChunk>(c)) in parseOrderFile() 954 auto findSection = [&](StringRef name) -> SectionChunk * { in parseCallGraphFile() 963 return dyn_cast_or_null<SectionChunk>(dr->getChunk()); in parseCallGraphFile() 977 if (SectionChunk *from = findSection(fields[0])) in parseCallGraphFile() 978 if (SectionChunk *to = findSection(fields[1])) in parseCallGraphFile() 1003 auto *from = dyn_cast_or_null<SectionChunk>(fromSym->getChunk()); in readCallGraphsFromObjectFiles() 1004 auto *to = dyn_cast_or_null<SectionChunk>(toSym->getChunk()); in readCallGraphsFromObjectFiles() 1014 if (SectionChunk *c = dyn_cast_or_null<SectionChunk>(d->getChunk())) in markAddrsig()
|
D | DebugTypes.cpp | 295 SectionChunk *sec = in getDebugH() 296 SectionChunk::findByName(file->getDebugChunks(), ".debug$H"); in getDebugH()
|