| /llvm-project-15.0.7/lld/MachO/ |
| H A D | MarkLive.cpp | 25 InputSection *isec; member 30 : isec(isec), prev(prev) {} in WhyLiveEntry() 53 enqueue(isec, off, nullptr); in enqueue() 77 if (isec->isLive(off)) in enqueue() 79 isec->markLive(off); in enqueue() 95 if (d->isec) in addSym() 132 return entry->isec; in getInputSection() 138 return isec; in getInputSection() 144 if (!isec) { in makeEntry() 154 return isec; in makeEntry() [all …]
|
| H A D | ConcatOutputSection.cpp | 129 isecAddr = alignTo(isecAddr, isec->align) + isec->getSize(); in needsThunks() 175 isecEnd = alignTo(isecEnd, isec->align) + isec->getSize(); in estimateStubsInRangeVA() 199 isec->outSecOff = size; in finalizeOne() 200 isec->isFinal = true; in finalizeOne() 201 size += isec->getSize(); in finalizeOne() 207 finalizeOne(isec); in finalizeContents() 213 finalizeOne(isec); in finalize() 318 thunkInfo.isec = in finalize() 319 makeSyntheticInputSection(isec->getSegName(), isec->getName()); in finalize() 361 isec->writeTo(buf + isec->outSecOff); in writeTo() [all …]
|
| H A D | ICF.cpp | 136 if (!da->isec || !db->isec) { in equalsConstant() 140 isecA = da->isec; in equalsConstant() 142 isecB = db->isec; in equalsConstant() 371 if (d->isec) in markSymAsAddrSig() 387 const InputSection *isec = addrSigSection->subsections[0].isec; in markAddrSigSymbols() local 420 (isCodeSection(isec) || isCfStringSection(isec) || in foldIdenticalSections() 421 isClassRefsSection(isec) || isGccExceptTabSection(isec)) && in foldIdenticalSections() 422 !isec->keepUnique && !isec->shouldOmitFromOutput() && in foldIdenticalSections() 435 if (isCfStringSection(isec) || isClassRefsSection(isec)) { in foldIdenticalSections() 442 isec->data = copy; in foldIdenticalSections() [all …]
|
| H A D | Symbols.cpp | 54 weakDef(isWeakDef), external(isExternal), isec(isec), value(value), in Defined() 56 if (isec) { in Defined() 57 isec->symbols.push_back(this); in Defined() 59 for (auto it = isec->symbols.rbegin(), rend = isec->symbols.rend(); in Defined() 73 return !isAbsolute() && isThreadLocalVariables(isec->getFlags()); in isTlv() 82 if (!isec->isFinal) { in getVA() 93 return isec->getVA(value); in getVA() 99 if (isec) in canonicalize() 100 isec = isec->canonical(); in canonicalize() 104 if (!isec) in getSourceLocation() [all …]
|
| H A D | InputSection.cpp | 76 if (subsec.isec == this) { in getLocation() 97 if (subsec.isec == this) { in getSourceLocation() 242 section.subsections.push_back({0, isec}); in makeSyntheticInputSection() 243 return isec; in makeSyntheticInputSection() 317 uint32_t type = sectionType(isec->getFlags()); in isCodeSection() 325 if (isec->getSegName() == segment_names::text) in isCodeSection() 326 return StringSwitch<bool>(isec->getName()) in isCodeSection() 335 isec->getSegName() == segment_names::data; in isCfStringSection() 340 isec->getSegName() == segment_names::data; in isClassRefsSection() 345 isec->getSegName() == segment_names::text; in isEhFrameSection() [all …]
|
| H A D | SyntheticSections.cpp | 72 isec->parent = this; in SyntheticSection() 84 isec->isFinal = true; in MachHeaderSection() 223 loc.isec->parent->getSegmentOffset() + loc.isec->getOffset(loc.offset); in encodeRebases() 279 return a.isec->getVA(a.offset) < b.isec->getVA(b.offset); in finalizeContents() 839 const InputSection *isec = subsec.isec; in collectDataInCodeEntries() local 883 if (!defined->isec || !isCodeSection(defined->isec) || in finalizeContents() 982 InputSection *isec = defined->isec; in emitStabs() local 1002 InputSection *isec = defined->isec; in emitStabs() local 1433 isec->parent = this; in addInput() 1459 1 << countTrailingZeros(isec->align | isec->pieces[i].inSecOff); in finalizeContents() [all …]
|
| H A D | Relocations.cpp | 25 const InputSection *isec, const Reloc &r) { in validateSymbolRelocation() argument 30 return (isec->getLocation(r.offset) + ": " + relocAttrs.name + in validateSymbolRelocation() 73 const ConcatInputSection *isec = osec->inputs[isecIdx]; in offsetToInputSection() local 74 if (*off < isec->outSecOff) in offsetToInputSection() 78 ConcatInputSection *isec = osec->inputs[isecIdx - 1]; in offsetToInputSection() local 79 *off -= isec->outSecOff; in offsetToInputSection() 80 return isec; in offsetToInputSection() 89 const InputSection *isec = offsetToInputSection(&off); in reportRangeError() local 90 std::string locStr = isec ? isec->getLocation(off) : "(invalid location)"; in reportRangeError()
|
| H A D | InputFiles.cpp | 443 return it->isec; in findContainingSubsection() 840 name, isec->getFile(), isec, value, size, sym.n_desc & N_WEAK_DEF, in createDefined() 971 InputSection *isec = subsec.isec; in parseSymbols() local 1002 isec->data = isec->data.slice(0, symbolOffset); in parseSymbols() 1040 isec->live = true; in OpaqueFile() 1201 ConcatInputSection *isec = cast<ConcatInputSection>(subsection.isec); in registerCompactUnwind() local 1231 for (auto it = isec->relocs.begin(); it != isec->relocs.end();) { in registerCompactUnwind() 1428 if (pcSym->isec == isec) { in targetSymFromCanonicalSubtractor() 1470 auto *isec = cast<ConcatInputSection>(subsec.isec); in registerEhFrames() local 1478 "EH_Frame", isec->getFile(), isec, /*value=*/0, /*size=*/0, in registerEhFrames() [all …]
|
| H A D | SymbolTable.cpp | 59 assert(!isWeakDef || (isa<BitcodeFile>(file) && !isec) || in addDefined() 60 (isa<ObjFile>(file) && file == isec->getFile())); in addDefined() 87 std::string src2 = isec ? isec->getSourceLocation(value) : ""; in addDefined() 249 assert(!isec || !isec->getFile()); // See makeSyntheticInputSection(). in addSynthetic() 286 osec = ssec->isec->parent; in handleSectionBoundarySymbol() 297 isec->live = true; in handleSectionBoundarySymbol() 301 osec = isec->parent = ConcatOutputSection::getOrCreateForInput(isec); in handleSectionBoundarySymbol() 302 inputSections.push_back(isec); in handleSectionBoundarySymbol() 370 const InputSection *isec; member 407 message += loc.isec->getLocation(loc.offset); in reportPendingUndefinedSymbols() [all …]
|
| H A D | MapFile.cpp | 53 if (d->isec && d->getFile() == file) { in getSymbols() 55 assert(!shouldOmitFromOutput(d->isec)); in getSymbols() 82 switch (sym->isec->kind()) { in getSymbolStrings() 85 const auto *isec = cast<CStringInputSection>(sym->isec); in getSymbolStrings() local 86 const StringPiece &piece = isec->getStringPiece(sym->value); in getSymbolStrings() 90 StringRef str = isec->getStringRef(&piece - &(*isec->pieces.begin())); in getSymbolStrings()
|
| H A D | InputSection.h | 123 static bool classof(const InputSection *isec) { in classof() argument 124 return isec->kind() == ConcatKind; in classof() 155 inline bool shouldOmitFromOutput(InputSection *isec) { in shouldOmitFromOutput() argument 156 return isa<ConcatInputSection>(isec) && in shouldOmitFromOutput() 160 inline bool isCoalescedWeak(InputSection *isec) { in isCoalescedWeak() argument 161 return isa<ConcatInputSection>(isec) && in isCoalescedWeak() 162 cast<ConcatInputSection>(isec)->isCoalescedWeak(); in isCoalescedWeak() 222 static bool classof(const InputSection *isec) { in classof() argument 223 return isec->kind() == CStringLiteralKind; in classof() 241 static bool classof(const InputSection *isec) { in classof() argument [all …]
|
| H A D | SectionPriorities.cpp | 85 auto getOrCreateCluster = [&](const InputSection *isec) -> int { in CallGraphSort() argument 86 auto res = secToCluster.try_emplace(isec, clusters.size()); in CallGraphSort() 88 sections.push_back(isec); in CallGraphSort() 89 clusters.emplace_back(clusters.size(), isec->getSize()); in CallGraphSort() 233 const InputSection *isec = sections[i]; in run() local 237 for (Symbol *sym : isec->getFile()->symbols) { in run() 239 if (d->isec == isec) in run() 260 const InputFile *f = sym->isec->getFile(); in getSymbolPriority() 289 callGraphProfile[{fromSym->isec, toSym->isec}] += entry.count; in extractCallGraphProfile() 372 size_t &priority = sectionPriorities[sym->isec]; in buildInputSectionPriorities()
|
| H A D | EhFrame.h | 94 EhRelocator(InputSection *isec) : isec(isec) {} in EhRelocator() argument 109 InputSection *isec;
|
| H A D | Dwarf.cpp | 28 for (const InputSection *isec : obj->debugSections) { in create() local 30 StringSwitch<StringRef *>(isec->getName()) in create() 36 *s = toStringRef(isec->data); in create()
|
| H A D | SyntheticSections.h | 55 InputSection *isec; variable 146 const InputSection *isec; member 149 Location(const InputSection *isec, uint64_t offset) in Location() 150 : isec(isec), offset(offset) {} in Location() 151 uint64_t getVA() const { return isec->getVA(offset); } in getVA() 165 void addEntry(const InputSection *isec, uint64_t offset) { in addEntry() argument 167 locations.push_back({isec, offset}); in addEntry() 194 void addEntry(const Symbol *dysym, const InputSection *isec, uint64_t offset, 196 bindingsMap[dysym].emplace_back(addend, Location(isec, offset)); 225 void addEntry(const Symbol *symbol, const InputSection *isec, uint64_t offset, [all …]
|
| /llvm-project-15.0.7/lld/ELF/ |
| H A D | Thunks.cpp | 437 STT_FUNC, 0, isec); in addSymbols() 463 STT_FUNC, 0, isec); in addSymbols() 563 STT_FUNC, 0, isec); in addSymbols() 581 STT_FUNC, 1, isec); in addSymbols() 602 STT_FUNC, 0, isec); in addSymbols() 623 STT_FUNC, 1, isec); in addSymbols() 738 isec); in addSymbols() 857 isec); in addSymbols() 981 isec); in addSymbols() 1017 isec); in addSymbols() [all …]
|
| H A D | ARMErrataFix.cpp | 208 uint64_t sourceAddr = isec->getVA(0) + off; in branchDestInFirstRegion() 238 isec->getVA() + isec->getSize() + 0x100); in patchInRange() 257 uint64_t isecAddr = isec->getVA(0); in scanCortexA8Errata657417() 269 const uint8_t *buf = isec->rawData.begin(); in scanCortexA8Errata657417() 289 if (relIt != isec->relocations.end()) in scanCortexA8Errata657417() 296 warn(toString(isec->file) + in scanCortexA8Errata657417() 378 isecLimit = isec->outSecOff + isec->getSize(); in insertPatches() 473 isec->relocations.push_back( in implementPatch() 486 for (InputSection *isec : isd.sections) { in patchInputSectionDescription() 488 if (isa<SyntheticSection>(isec)) in patchInputSectionDescription() [all …]
|
| H A D | Target.cpp | 97 auto *isec = cast<InputSection>(d); in getErrorPlace() local 98 if (!isec->getParent() || (isec->type & SHT_NOBITS)) in getErrorPlace() 103 ? (Out::bufferStart + isec->getParent()->offset + isec->outSecOff) in getErrorPlace() 104 : isec->data().data(); in getErrorPlace() 106 assert(isa<SyntheticSection>(isec) && "No data but not synthetic?"); in getErrorPlace() 109 if (isecLoc <= loc && loc < isecLoc + isec->getSize()) { in getErrorPlace() 110 std::string objLoc = isec->getLocation(loc - isecLoc); in getErrorPlace() 114 return {isec, objLoc + ": ", in getErrorPlace() 115 isec->file ? isec->getSrcMsg(dummy, loc - isecLoc) : ""}; in getErrorPlace()
|
| H A D | OutputSections.cpp | 99 partition = isec->partition; in recordSection() 100 isec->parent = this; in recordSection() 129 type = isec->type; in commitSection() 136 entsize = isec->entsize; in commitSection() 137 flags = isec->flags; in commitSection() 142 toString(isec) + ": 0x" + utohexstr(isec->flags) + in commitSection() 146 isec->parent = this; in commitSection() 161 if (entsize != isec->entsize) in commitSection() 434 isec->writeTo<ELFT>(buf + isec->outSecOff); in writeTo() 438 uint8_t *start = buf + isec->outSecOff + isec->getSize(); in writeTo() [all …]
|
| H A D | AArch64ErrataFix.cpp | 338 uint64_t isecAddr = isec->getVA(0); in scanCortexA53Errata843419() 353 const uint8_t *buf = isec->rawData.begin(); in scanCortexA53Errata843419() 493 for (const InputSection *isec : isd.sections) { in insertPatches() local 494 isecLimit = isec->outSecOff + isec->getSize(); in insertPatches() 531 InputSection *isec, in implementPatch() argument 550 if (relIt != isec->relocations.end() && in implementPatch() 557 auto *ps = make<Patch843419Section>(isec, patcheeOffset); in implementPatch() 564 if (relIt != isec->relocations.end()) { in implementPatch() 579 for (InputSection *isec : isd.sections) { in patchInputSectionDescription() 581 if (isa<SyntheticSection>(isec)) in patchInputSectionDescription() [all …]
|
| H A D | LinkerScript.cpp | 60 if (auto *isec = dyn_cast<InputSection>(s)) { in getOutputSectionName() local 714 osd->osec.recordSection(isec); in createSection() 727 if (isec->type == SHT_GROUP || (isec->flags & SHF_GROUP)) in addInputSec() 736 if (!isa<SyntheticSection>(isec) && in addInputSec() 737 (isec->type == SHT_REL || isec->type == SHT_RELA)) { in addInputSec() 738 auto *sec = cast<InputSection>(isec); in addInputSec() 813 sec->recordSection(isec); in addInputSec() 860 add(isec); in addOrphanSections() 1047 assert(isec->getParent() == sec); in assignOffsets() 1050 isec->outSecOff = dot - sec->addr; in assignOffsets() [all …]
|
| H A D | Relocations.cpp | 109 if (errPlace.isec && errPlace.isec->name.startswith(".debug")) in reportRangeError() 869 Partition &part = isec.getPartition(); in addRelativeReloc() 1905 uint64_t thunkSecOff = isec->outSecOff; in getISDThunkSec() 1908 thunkSecOff = isec->outSecOff + isec->getSize(); in getISDThunkSec() 1912 isec->getObjMsg(src - (os->addr + isec->outSecOff))); in getISDThunkSec() 1926 OutputSection *tos = isec->getParent(); in getISThunkSec() 1935 if (isec->outSecOff < first->outSecOff || last->outSecOff < isec->outSecOff) in getISThunkSec() 1939 thunkedSections[isec] = ts; in getISThunkSec() 1983 isecLimit = isec->outSecOff + isec->getSize(); in createInitialThunkSections() 2070 t->isCompatibleWith(*isec, rel) && in getThunk() [all …]
|
| H A D | MapFile.cpp | 178 for (InputSection *isec : isd->sections) { in writeMapFile() 179 if (auto *ehSec = dyn_cast<EhFrameSection>(isec)) { in writeMapFile() 184 writeHeader(os, isec->getVA(), osec->getLMA() + isec->outSecOff, in writeMapFile() 185 isec->getSize(), isec->alignment); in writeMapFile() 186 os << indent8 << toString(isec) << '\n'; in writeMapFile() 187 for (Symbol *sym : llvm::make_first_range(sectionSyms[isec])) in writeMapFile()
|
| /llvm-project-15.0.7/lld/MachO/Arch/ |
| H A D | ARM64.cpp | 180 : buf(buf), isec(isec), relocTargets(relocTargets), in OptimizationHintContext() 181 relocIt(isec->relocs.rbegin()) {} in OptimizationHintContext() 191 const ConcatInputSection *isec; member in __anona1e43e690211::OptimizationHintContext 323 size_t relocIdx = &reloc - isec->relocs.data(); in getRelocTarget() 333 const auto end = isec->relocs.rend(); in findPrimaryReloc() 346 auto end = isec->relocs.rend(); in findReloc() 350 auto reloc = lower_bound(isec->relocs, offset, in findReloc() 567 assert(isec); in applyOptimizationHints() 568 assert(relocTargets.size() == isec->relocs.size()); in applyOptimizationHints() 573 OptimizationHintContext ctx1(buf, isec, relocTargets); in applyOptimizationHints() [all …]
|
| /llvm-project-15.0.7/llvm/test/Transforms/SLPVectorizer/X86/ |
| H A D | vectorize-reordered-list.ll | 4 define void @test(double* %isec) { 21 %arrayidx5 = getelementptr inbounds double, double* %isec, i64 1 23 %arrayidx10 = getelementptr inbounds double, double* %isec, i64 0 25 %arrayidx3 = getelementptr inbounds double, double* %isec, i64 3 27 %arrayidx2 = getelementptr inbounds double, double* %isec, i64 2
|