| /freebsd-13.1/contrib/llvm-project/lld/lib/ReaderWriter/MachO/ |
| H A D | LayoutPass.h | 22 class DefinedAtom; variable 35 SortKey(OwningAtomPtr<DefinedAtom> &&atom, in SortKey() 36 const DefinedAtom *root, uint64_t override) in SortKey() 38 OwningAtomPtr<DefinedAtom> _atom; 39 const DefinedAtom *_root; 62 typedef std::function<bool (const DefinedAtom *left, const DefinedAtom *right, 83 typedef llvm::DenseMap<const DefinedAtom *, const DefinedAtom *> AtomToAtomT; 101 const DefinedAtom *findAtomFollowedBy(const DefinedAtom *targetAtom); 102 bool checkAllPrevAtomsZeroSize(const DefinedAtom *targetAtom); 104 void setChainRoot(const DefinedAtom *targetAtom, const DefinedAtom *root); [all …]
|
| H A D | LayoutPass.cpp | 53 typedef llvm::DenseMap<const DefinedAtom *, const DefinedAtom *> AtomToAtomT; 56 const DefinedAtom *definedAtom = dyn_cast<DefinedAtom>(atom); in atomToDebugString() 75 const DefinedAtom *start = atom; in showCycleDetectedError() 99 const DefinedAtom *tortoise = root; in checkNoCycleInFollowonChain() 121 const DefinedAtom *ap = i->second; in checkReachabilityFromRoot() 153 std::set<const DefinedAtom *> roots; in checkFollowonChain() 156 for (const DefinedAtom *root : roots) in checkFollowonChain() 269 const DefinedAtom *targetAtom) { in findAtomFollowedBy() 345 const DefinedAtom *targetAtom = dyn_cast<DefinedAtom>(r->target()); in buildFollowOnTable() 407 const DefinedAtom *atom = ai; in buildOrdinalOverrideMap() [all …]
|
| H A D | ShimPass.cpp | 51 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 58 if (const lld::DefinedAtom *daTarget = dyn_cast<DefinedAtom>(target)) { in perform() 71 std::vector<const DefinedAtom *> shims; in perform() 77 [](const DefinedAtom *l, const DefinedAtom *r) { in perform() 82 for (const DefinedAtom *shim : shims) in perform() 90 void updateBranchToUseShim(bool thumbToArm, const DefinedAtom& target, in updateBranchToUseShim() 93 const DefinedAtom *shim = this->getShim(thumbToArm, target); in updateBranchToUseShim() 99 const DefinedAtom* getShim(bool thumbToArm, const DefinedAtom& target) { in getShim() 107 const DefinedAtom *shim = _archHandler.createShim(_file, thumbToArm, in getShim() 118 llvm::DenseMap<const Atom*, const DefinedAtom*> _targetToShim;
|
| H A D | ExecutableAtoms.h | 72 DefinedAtom::Scope symbolScope = DefinedAtom::scopeLinkageUnit; in MachHeaderAliasFile() 80 symbolScope = DefinedAtom::scopeGlobal; in MachHeaderAliasFile() 112 DefinedAtom::typeMachHeader, DefinedAtom::mergeNo, false, in MachHeaderAliasFile() 114 ArrayRef<uint8_t>(), DefinedAtom::Alignment(4096))); in MachHeaderAliasFile() 118 *this, dsoHandleName, DefinedAtom::scopeLinkageUnit, in MachHeaderAliasFile() 119 DefinedAtom::typeDSOHandle, DefinedAtom::mergeNo, false, in MachHeaderAliasFile() 121 ArrayRef<uint8_t>(), DefinedAtom::Alignment(1))); in MachHeaderAliasFile() 124 const AtomRange<DefinedAtom> defined() const override { in defined() 148 mutable AtomVector<DefinedAtom> _definedAtoms;
|
| H A D | MachONormalizedFileFromAtoms.cpp | 48 const DefinedAtom *atom; 263 DefinedAtom::ContentType atomType; 312 case DefinedAtom::typeMachHeader: in getFinalSection() 313 case DefinedAtom::typeCode: in getFinalSection() 314 case DefinedAtom::typeStub: in getFinalSection() 318 case DefinedAtom::typeThunkTLV: in getFinalSection() 808 if (const DefinedAtom *atom = dyn_cast<DefinedAtom>(info.atom)) { in synthesizeDebugNotes() 841 [](const DefinedAtom *lhs, const DefinedAtom *rhs) { in synthesizeDebugNotes() 950 case lld::DefinedAtom::mergeNo: in descBits() 1160 if (const DefinedAtom *lpAtom = dyn_cast<DefinedAtom>(ta)) { in targetOfStub() [all …]
|
| H A D | GOTPass.cpp | 59 return DefinedAtom::typeGOT; in contentType() 71 return DefinedAtom::permRW_; in permissions() 102 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 116 const DefinedAtom *gotEntry = makeGOTEntry(target); in perform() 145 const DefinedAtom *defTarget = dyn_cast<DefinedAtom>(target); in shouldReplaceTargetWithGOTAtom() 147 defTarget->interposable() != DefinedAtom::interposeNo) { in shouldReplaceTargetWithGOTAtom() 148 assert(defTarget->scope() != DefinedAtom::scopeTranslationUnit); in shouldReplaceTargetWithGOTAtom() 156 const DefinedAtom *makeGOTEntry(const Atom *target) { in makeGOTEntry()
|
| H A D | ArchHandler_x86.cpp | 220 DefinedAtom::typeNonLazyPointer, 260 DefinedAtom::ContentPermissions perms; in getReferenceInfo() 315 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 326 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 335 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 387 if ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) { in getPairReferenceInfo() 423 if (isa<DefinedAtom>(target)) in generateAtomContent() 534 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&target)) { in useExternalRelocationTo() 536 case DefinedAtom::mergeAsTentative: in useExternalRelocationTo() 539 case DefinedAtom::mergeAsWeak: in useExternalRelocationTo() [all …]
|
| H A D | CompactUnwindPass.cpp | 50 CompactUnwindEntry(const DefinedAtom *function) in CompactUnwindEntry() 93 return DefinedAtom::typeProcessedUnwindInfo; in contentType() 101 return DefinedAtom::permR__; in permissions() 366 for (const DefinedAtom *atom : mergedFile.defined()) { in collectCompactUnwindEntries() 460 for (const DefinedAtom *atom : mergedFile.defined()) { in createUnwindInfoEntries() 461 if (atom->contentType() != DefinedAtom::typeCode) in createUnwindInfoEntries() 487 std::vector<const DefinedAtom *> usedDwarfWorklist; in pruneUnusedEHFrames() 504 const DefinedAtom *cfiAtom = usedDwarfWorklist.back(); in pruneUnusedEHFrames() 508 const DefinedAtom *cfiTarget = dyn_cast<DefinedAtom>(ref->target()); in pruneUnusedEHFrames() 516 if ((atom->contentType() == DefinedAtom::typeCFI) && in pruneUnusedEHFrames() [all …]
|
| H A D | ArchHandler.h | 104 virtual const Atom *fdeTargetFunction(const DefinedAtom *fde); 138 const DefinedAtom *inAtom, 154 const DefinedAtom *inAtom, 176 virtual bool needsLocalSymbolInRelocatableFile(const DefinedAtom *atom) { in needsLocalSymbolInRelocatableFile() 181 virtual void generateAtomContent(const DefinedAtom &atom, bool relocatable, 188 virtual void appendSectionRelocations(const DefinedAtom &atom, 224 virtual bool isThumbFunction(const DefinedAtom &atom) { return false; } in isThumbFunction() 227 virtual const DefinedAtom *createShim(MachOFile &file, bool thumbToArm, in createShim() 228 const DefinedAtom &) { in createShim() argument 233 static bool isDwarfCIE(bool isBig, const DefinedAtom *atom); [all …]
|
| H A D | StubsPass.cpp | 42 return DefinedAtom::typeLazyPointer; in contentType() 54 return DefinedAtom::permRW_; in permissions() 90 return DefinedAtom::permRW_; in permissions() 115 return DefinedAtom::typeStub; in contentType() 127 return DefinedAtom::permR_X; in permissions() 149 return DefinedAtom::typeStubHelper; in contentType() 161 return DefinedAtom::permR_X; in permissions() 184 return DefinedAtom::typeStubHelper; in contentType() 196 return DefinedAtom::permR_X; in permissions() 223 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() [all …]
|
| H A D | Atoms.h | 60 if (_contentType == DefinedAtom::typeInitializerPtr) in deadStrip() 62 if (_contentType == DefinedAtom::typeTerminatorPtr) in deadStrip() 79 const DefinedAtom::Alignment _align; 101 return DefinedAtom::sectionCustomRequired; in sectionChoice() 114 uint64_t size, DefinedAtom::Alignment align) in MachOTentativeDefAtom() 122 Merge merge() const override { return DefinedAtom::mergeAsTentative; } in merge() 124 ContentType contentType() const override { return DefinedAtom::typeZeroFill; } in contentType() 138 const DefinedAtom::Alignment _align;
|
| H A D | ArchHandler_arm.cpp | 197 StringRef stubName(const DefinedAtom &); 271 DefinedAtom::typeGOT, 342 if (const DefinedAtom* lp = dyn_cast<DefinedAtom>(ref->target())) { in stubName() 514 if (isa<DefinedAtom>(target)) { in clearThumbBit() 1028 if (const DefinedAtom *defTarg = dyn_cast<DefinedAtom>(target)) { in generateAtomContent() 1049 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&target)) { in useExternalRelocationTo() 1054 case DefinedAtom::mergeAsWeak: in useExternalRelocationTo() 1435 return DefinedAtom::typeCode; in contentType() 1445 return DefinedAtom::permR_X; in permissions() 1480 return DefinedAtom::typeCode; in contentType() [all …]
|
| H A D | MachONormalizedFileToAtoms.cpp | 58 DefinedAtom::ContentType atomType; 122 return DefinedAtom::typeCode; in atomTypeFromSection() 124 return DefinedAtom::typeUnknown; in atomTypeFromSection() 147 DefinedAtom::Scope scope; in sectionParseInfo() 148 DefinedAtom::Merge merge; in sectionParseInfo() 153 {DefinedAtom::type, size, DefinedAtom::scope, DefinedAtom::merge, model } in sectionParseInfo() 207 scope = DefinedAtom::scopeGlobal; in sectionParseInfo() 208 merge = DefinedAtom::mergeNo; in sectionParseInfo() 254 ? DefinedAtom::mergeAsWeak : DefinedAtom::mergeNo; in atomFromSymbol() 393 DefinedAtom::Scope scope; in processSection() [all …]
|
| H A D | TLVPass.cpp | 35 return DefinedAtom::typeTLVInitializerPtr; in contentType() 47 return DefinedAtom::permRW_; in permissions() 77 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 91 const DefinedAtom *tlvpEntry = makeTLVPEntry(target); in perform() 112 const DefinedAtom *makeTLVPEntry(const Atom *target) { in makeTLVPEntry()
|
| H A D | File.h | 42 DefinedAtom::ContentType type, DefinedAtom::Merge merge, in addDefinedAtom() 54 DefinedAtom::Alignment align( in addDefinedAtom() 64 DefinedAtom::ContentType type, DefinedAtom::Merge merge, in addDefinedAtomInCustomSection() 77 DefinedAtom::Alignment align( in addDefinedAtomInCustomSection() 96 DefinedAtom::Alignment align( in addZeroFillDefinedAtom() 100 DefinedAtom::ContentType type = DefinedAtom::typeUnknown; in addZeroFillDefinedAtom() 103 type = DefinedAtom::typeZeroFill; in addZeroFillDefinedAtom() 106 type = DefinedAtom::typeTLVInitialZeroFill; in addZeroFillDefinedAtom() 129 DefinedAtom::Alignment align, bool copyRefs) { in addTentativeDefAtom()
|
| H A D | ObjCPass.cpp | 64 return DefinedAtom::typeObjCImageInfo; in contentType() 76 return DefinedAtom::permR__; in permissions() 113 const DefinedAtom* getImageInfo() { in getImageInfo()
|
| H A D | ArchHandler_x86_64.cpp | 146 const DefinedAtom *inAtom, 157 const DefinedAtom *inAtom, 167 return (atom->contentType() == DefinedAtom::typeCString); in needsLocalSymbolInRelocatableFile() 176 void appendSectionRelocations(const DefinedAtom &atom, 323 DefinedAtom::typeNonLazyPointer, 397 const DefinedAtom *inAtom, in getReferenceInfo() 457 if (inAtom->contentType() == DefinedAtom::typeThunkTLV && in getReferenceInfo() 475 const DefinedAtom *inAtom, in getPairReferenceInfo() 497 if (inAtom->contentType() == DefinedAtom::typeCFI) in getPairReferenceInfo() 557 if (isa<DefinedAtom>(target)) in generateAtomContent() [all …]
|
| H A D | ArchHandler_arm64.cpp | 138 const DefinedAtom *inAtom, 149 const DefinedAtom *inAtom, 158 bool needsLocalSymbolInRelocatableFile(const DefinedAtom *atom) override { in needsLocalSymbolInRelocatableFile() 159 return (atom->contentType() == DefinedAtom::typeCString); in needsLocalSymbolInRelocatableFile() 162 void generateAtomContent(const DefinedAtom &atom, bool relocatable, 168 void appendSectionRelocations(const DefinedAtom &atom, 297 DefinedAtom::typeGOT, 458 if (inAtom->contentType() == DefinedAtom::typeCFI) in getReferenceInfo() 474 const DefinedAtom *inAtom, uint32_t offsetInAtom, uint64_t fixupAddress, in getPairReferenceInfo() 514 if (inAtom->contentType() == DefinedAtom::typeCFI) in getPairReferenceInfo() [all …]
|
| /freebsd-13.1/contrib/llvm-project/lld/lib/ReaderWriter/YAML/ |
| H A D | ReaderWriterYAML.cpp | 78 for (const lld::DefinedAtom *atom : file.defined()) { in RefNameBuilder() 328 lld::DefinedAtom::mergeSameNameAndSize); in enumeration() 350 io.enumCase(value, "none", lld::DefinedAtom::codeNA); in enumeration() 681 AtomList<lld::DefinedAtom> _definedAtoms; 807 class NormalizedAtom : public lld::DefinedAtom { 837 const lld::DefinedAtom *denormalize(IO &io) { in denormalize() 987 template <> struct MappingTraits<lld::DefinedAtom *> { 989 const lld::DefinedAtom *atomPtr = atom; in mapping() 991 atom = const_cast<lld::DefinedAtom *>(atomPtr); in mapping() 1223 for (const lld::DefinedAtom *a : file->defined()) { in RefNameResolver() [all …]
|
| /freebsd-13.1/contrib/llvm-project/lld/include/lld/Core/ |
| H A D | SymbolTable.h | 23 class DefinedAtom; variable 37 bool add(const DefinedAtom &); 77 static const DefinedAtom * getEmptyKey() { return nullptr; } in getEmptyKey() 78 static const DefinedAtom * getTombstoneKey() { return (DefinedAtom*)(-1); } in getTombstoneKey() 79 static unsigned getHashValue(const DefinedAtom * const Val); 80 static bool isEqual(const DefinedAtom * const LHS, 81 const DefinedAtom * const RHS); 83 typedef llvm::DenseSet<const DefinedAtom*, AtomMappingInfo> AtomContentSet; 86 bool addByContent(const DefinedAtom &);
|
| H A D | Simple.h | 50 void addAtom(DefinedAtom &a) { in addAtom() 51 _defined.push_back(OwningAtomPtr<DefinedAtom>(&a)); in addAtom() 64 if (auto *p = dyn_cast<DefinedAtom>(&atom)) { in addAtom() 65 addAtom(const_cast<DefinedAtom &>(*p)); in addAtom() 108 AtomVector<DefinedAtom> _defined; 143 class SimpleDefinedAtom : public DefinedAtom { 161 return DefinedAtom::interposeNo; in interposable() 169 return DefinedAtom::sectionBasedOnContent; in sectionChoice() 174 return DefinedAtom::deadStripNormal; in deadStrip() 177 DefinedAtom::reference_iterator begin() const override { in begin() [all …]
|
| H A D | DefinedAtom.h | 84 class DefinedAtom : public Atom { 291 reference_iterator(const DefinedAtom &a, const void *it) in reference_iterator() 315 const DefinedAtom &_atom; 343 return !(atomContentType == DefinedAtom::typeZeroFill || in occupiesDiskSpace() 344 atomContentType == DefinedAtom::typeZeroFillFast || in occupiesDiskSpace() 345 atomContentType == DefinedAtom::typeTLVInitialZeroFill); in occupiesDiskSpace() 359 DefinedAtom() : Atom(definitionRegular) { } in DefinedAtom() function 361 ~DefinedAtom() override = default;
|
| /freebsd-13.1/contrib/llvm-project/lld/lib/Core/ |
| H A D | SymbolTable.cpp | 36 bool SymbolTable::add(const DefinedAtom &atom) { in add() 38 atom.scope() != DefinedAtom::scopeTranslationUnit) { in add() 40 assert(atom.merge() != DefinedAtom::mergeByContent); in add() 44 if (atom.merge() == DefinedAtom::mergeByContent) { in add() 48 if (atom.permissions() == DefinedAtom::permR__) in add() 107 static MergeResolution mergeSelect(DefinedAtom::Merge first, in mergeSelect() 109 assert(first != DefinedAtom::mergeByContent); in mergeSelect() 110 assert(second != DefinedAtom::mergeByContent); in mergeSelect() 138 const auto *existingDef = cast<DefinedAtom>(existing); in addByName() 139 const auto *newDef = cast<DefinedAtom>(&newAtom); in addByName() [all …]
|
| H A D | DefinedAtom.cpp | 15 DefinedAtom::ContentPermissions DefinedAtom::permissions() const { in permissions() 21 DefinedAtom::ContentPermissions DefinedAtom::permissions(ContentType type) { in permissions()
|
| H A D | Resolver.cpp | 124 void Resolver::doDefinedAtom(OwningAtomPtr<DefinedAtom> atom) { in doDefinedAtom() 140 atom.get()->deadStrip() == DefinedAtom::deadStripNever) { in doDefinedAtom() 299 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) { in updateReferences() 326 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom)) { in markLive() 356 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) in deadStripOptimize() 367 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) in deadStripOptimize() 368 if (defAtom->scope() == DefinedAtom::scopeGlobal) in deadStripOptimize() 479 if (auto *definedAtom = dyn_cast<DefinedAtom>(atom.get())) { in addAtoms()
|