| /freebsd-12.1/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ |
| H A D | LayoutPass.cpp | 54 typedef llvm::DenseMap<const DefinedAtom *, const DefinedAtom *> AtomToAtomT; 57 const DefinedAtom *definedAtom = dyn_cast<DefinedAtom>(atom); in atomToDebugString() 76 const DefinedAtom *start = atom; in showCycleDetectedError() 100 const DefinedAtom *tortoise = root; in checkNoCycleInFollowonChain() 122 const DefinedAtom *ap = i->second; in checkReachabilityFromRoot() 154 std::set<const DefinedAtom *> roots; in checkFollowonChain() 157 for (const DefinedAtom *root : roots) in checkFollowonChain() 270 const DefinedAtom *targetAtom) { in findAtomFollowedBy() 346 const DefinedAtom *targetAtom = dyn_cast<DefinedAtom>(r->target()); in buildFollowOnTable() 408 const DefinedAtom *atom = ai; in buildOrdinalOverrideMap() [all …]
|
| H A D | LayoutPass.h | 23 class DefinedAtom; variable 36 SortKey(OwningAtomPtr<DefinedAtom> &&atom, in SortKey() 37 const DefinedAtom *root, uint64_t override) in SortKey() 39 OwningAtomPtr<DefinedAtom> _atom; 40 const DefinedAtom *_root; 63 typedef std::function<bool (const DefinedAtom *left, const DefinedAtom *right, 84 typedef llvm::DenseMap<const DefinedAtom *, const DefinedAtom *> AtomToAtomT; 102 const DefinedAtom *findAtomFollowedBy(const DefinedAtom *targetAtom); 103 bool checkAllPrevAtomsZeroSize(const DefinedAtom *targetAtom); 105 void setChainRoot(const DefinedAtom *targetAtom, const DefinedAtom *root); [all …]
|
| H A D | ShimPass.cpp | 52 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 59 if (const lld::DefinedAtom *daTarget = dyn_cast<DefinedAtom>(target)) { in perform() 72 std::vector<const DefinedAtom *> shims; in perform() 78 [](const DefinedAtom *l, const DefinedAtom *r) { in perform() 83 for (const DefinedAtom *shim : shims) in perform() 91 void updateBranchToUseShim(bool thumbToArm, const DefinedAtom& target, in updateBranchToUseShim() 94 const DefinedAtom *shim = this->getShim(thumbToArm, target); in updateBranchToUseShim() 100 const DefinedAtom* getShim(bool thumbToArm, const DefinedAtom& target) { in getShim() 108 const DefinedAtom *shim = _archHandler.createShim(_file, thumbToArm, in getShim() 119 llvm::DenseMap<const Atom*, const DefinedAtom*> _targetToShim;
|
| H A D | ExecutableAtoms.h | 73 DefinedAtom::Scope symbolScope = DefinedAtom::scopeLinkageUnit; in MachHeaderAliasFile() 81 symbolScope = DefinedAtom::scopeGlobal; in MachHeaderAliasFile() 113 DefinedAtom::typeMachHeader, DefinedAtom::mergeNo, false, in MachHeaderAliasFile() 115 ArrayRef<uint8_t>(), DefinedAtom::Alignment(4096))); in MachHeaderAliasFile() 119 *this, dsoHandleName, DefinedAtom::scopeLinkageUnit, in MachHeaderAliasFile() 120 DefinedAtom::typeDSOHandle, DefinedAtom::mergeNo, false, in MachHeaderAliasFile() 122 ArrayRef<uint8_t>(), DefinedAtom::Alignment(1))); in MachHeaderAliasFile() 125 const AtomRange<DefinedAtom> defined() const override { in defined() 149 mutable AtomVector<DefinedAtom> _definedAtoms;
|
| H A D | MachONormalizedFileFromAtoms.cpp | 49 const DefinedAtom *atom; 264 DefinedAtom::ContentType atomType; 313 case DefinedAtom::typeMachHeader: in getFinalSection() 314 case DefinedAtom::typeCode: in getFinalSection() 315 case DefinedAtom::typeStub: in getFinalSection() 319 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 | ArchHandler_x86.cpp | 221 DefinedAtom::typeNonLazyPointer, 261 DefinedAtom::ContentPermissions perms; in getReferenceInfo() 316 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 327 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 336 ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) ? abs32 in getReferenceInfo() 388 if ((perms & DefinedAtom::permR_X) == DefinedAtom::permR_X) { in getPairReferenceInfo() 424 if (isa<DefinedAtom>(target)) in generateAtomContent() 535 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&target)) { in useExternalRelocationTo() 537 case DefinedAtom::mergeAsTentative: in useExternalRelocationTo() 540 case DefinedAtom::mergeAsWeak: in useExternalRelocationTo() [all …]
|
| H A D | GOTPass.cpp | 60 return DefinedAtom::typeGOT; in contentType() 72 return DefinedAtom::permRW_; in permissions() 103 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 117 const DefinedAtom *gotEntry = makeGOTEntry(target); in perform() 146 const DefinedAtom *defTarget = dyn_cast<DefinedAtom>(target); in shouldReplaceTargetWithGOTAtom() 148 defTarget->interposable() != DefinedAtom::interposeNo) { in shouldReplaceTargetWithGOTAtom() 149 assert(defTarget->scope() != DefinedAtom::scopeTranslationUnit); in shouldReplaceTargetWithGOTAtom() 157 const DefinedAtom *makeGOTEntry(const Atom *target) { in makeGOTEntry()
|
| H A D | CompactUnwindPass.cpp | 51 CompactUnwindEntry(const DefinedAtom *function) in CompactUnwindEntry() 94 return DefinedAtom::typeProcessedUnwindInfo; in contentType() 102 return DefinedAtom::permR__; in permissions() 367 for (const DefinedAtom *atom : mergedFile.defined()) { in collectCompactUnwindEntries() 464 for (const DefinedAtom *atom : mergedFile.defined()) { in createUnwindInfoEntries() 465 if (atom->contentType() != DefinedAtom::typeCode) in createUnwindInfoEntries() 491 std::vector<const DefinedAtom *> usedDwarfWorklist; in pruneUnusedEHFrames() 508 const DefinedAtom *cfiAtom = usedDwarfWorklist.back(); in pruneUnusedEHFrames() 512 const DefinedAtom *cfiTarget = dyn_cast<DefinedAtom>(ref->target()); in pruneUnusedEHFrames() 520 if ((atom->contentType() == DefinedAtom::typeCFI) && in pruneUnusedEHFrames() [all …]
|
| H A D | ArchHandler.h | 105 virtual const Atom *fdeTargetFunction(const DefinedAtom *fde); 139 const DefinedAtom *inAtom, 155 const DefinedAtom *inAtom, 177 virtual bool needsLocalSymbolInRelocatableFile(const DefinedAtom *atom) { in needsLocalSymbolInRelocatableFile() 182 virtual void generateAtomContent(const DefinedAtom &atom, bool relocatable, 189 virtual void appendSectionRelocations(const DefinedAtom &atom, 225 virtual bool isThumbFunction(const DefinedAtom &atom) { return false; } in isThumbFunction() 228 virtual const DefinedAtom *createShim(MachOFile &file, bool thumbToArm, in createShim() 229 const DefinedAtom &) { in createShim() argument 234 static bool isDwarfCIE(bool isBig, const DefinedAtom *atom); [all …]
|
| H A D | StubsPass.cpp | 43 return DefinedAtom::typeLazyPointer; in contentType() 55 return DefinedAtom::permRW_; in permissions() 91 return DefinedAtom::permRW_; in permissions() 116 return DefinedAtom::typeStub; in contentType() 128 return DefinedAtom::permR_X; in permissions() 150 return DefinedAtom::typeStubHelper; in contentType() 162 return DefinedAtom::permR_X; in permissions() 185 return DefinedAtom::typeStubHelper; in contentType() 197 return DefinedAtom::permR_X; in permissions() 224 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() [all …]
|
| H A D | Atoms.h | 61 if (_contentType == DefinedAtom::typeInitializerPtr) in deadStrip() 63 if (_contentType == DefinedAtom::typeTerminatorPtr) in deadStrip() 80 const DefinedAtom::Alignment _align; 102 return DefinedAtom::sectionCustomRequired; in sectionChoice() 115 uint64_t size, DefinedAtom::Alignment align) in MachOTentativeDefAtom() 123 Merge merge() const override { return DefinedAtom::mergeAsTentative; } in merge() 125 ContentType contentType() const override { return DefinedAtom::typeZeroFill; } in contentType() 139 const DefinedAtom::Alignment _align;
|
| H A D | ArchHandler_arm.cpp | 198 StringRef stubName(const DefinedAtom &); 272 DefinedAtom::typeGOT, 343 if (const DefinedAtom* lp = dyn_cast<DefinedAtom>(ref->target())) { in stubName() 515 if (isa<DefinedAtom>(target)) { in clearThumbBit() 1029 if (const DefinedAtom *defTarg = dyn_cast<DefinedAtom>(target)) { in generateAtomContent() 1050 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&target)) { in useExternalRelocationTo() 1055 case DefinedAtom::mergeAsWeak: in useExternalRelocationTo() 1436 return DefinedAtom::typeCode; in contentType() 1446 return DefinedAtom::permR_X; in permissions() 1481 return DefinedAtom::typeCode; in contentType() [all …]
|
| H A D | MachONormalizedFileToAtoms.cpp | 59 DefinedAtom::ContentType atomType; 123 return DefinedAtom::typeCode; in atomTypeFromSection() 125 return DefinedAtom::typeUnknown; in atomTypeFromSection() 148 DefinedAtom::Scope scope; in sectionParseInfo() 149 DefinedAtom::Merge merge; in sectionParseInfo() 154 {DefinedAtom::type, size, DefinedAtom::scope, DefinedAtom::merge, model } in sectionParseInfo() 208 scope = DefinedAtom::scopeGlobal; in sectionParseInfo() 209 merge = DefinedAtom::mergeNo; in sectionParseInfo() 254 ? DefinedAtom::mergeAsWeak : DefinedAtom::mergeNo; in atomFromSymbol() 392 DefinedAtom::Scope scope; in processSection() [all …]
|
| H A D | File.h | 41 DefinedAtom::ContentType type, DefinedAtom::Merge merge, in addDefinedAtom() 53 DefinedAtom::Alignment align( in addDefinedAtom() 63 DefinedAtom::ContentType type, DefinedAtom::Merge merge, in addDefinedAtomInCustomSection() 76 DefinedAtom::Alignment align( in addDefinedAtomInCustomSection() 95 DefinedAtom::Alignment align( in addZeroFillDefinedAtom() 99 DefinedAtom::ContentType type = DefinedAtom::typeUnknown; in addZeroFillDefinedAtom() 102 type = DefinedAtom::typeZeroFill; in addZeroFillDefinedAtom() 105 type = DefinedAtom::typeTLVInitialZeroFill; in addZeroFillDefinedAtom() 128 DefinedAtom::Alignment align, bool copyRefs) { in addTentativeDefAtom()
|
| H A D | TLVPass.cpp | 36 return DefinedAtom::typeTLVInitializerPtr; in contentType() 48 return DefinedAtom::permRW_; in permissions() 78 for (const DefinedAtom *atom : mergedFile.defined()) { in perform() 92 const DefinedAtom *tlvpEntry = makeTLVPEntry(target); in perform() 113 const DefinedAtom *makeTLVPEntry(const Atom *target) { in makeTLVPEntry()
|
| H A D | ArchHandler_x86_64.cpp | 147 const DefinedAtom *inAtom, 158 const DefinedAtom *inAtom, 168 return (atom->contentType() == DefinedAtom::typeCString); in needsLocalSymbolInRelocatableFile() 177 void appendSectionRelocations(const DefinedAtom &atom, 297 DefinedAtom::typeNonLazyPointer, 371 const DefinedAtom *inAtom, in getReferenceInfo() 431 if (inAtom->contentType() == DefinedAtom::typeThunkTLV && in getReferenceInfo() 449 const DefinedAtom *inAtom, in getPairReferenceInfo() 471 if (inAtom->contentType() == DefinedAtom::typeCFI) in getPairReferenceInfo() 531 if (isa<DefinedAtom>(target)) in generateAtomContent() [all …]
|
| H A D | ArchHandler_arm64.cpp | 139 const DefinedAtom *inAtom, 150 const DefinedAtom *inAtom, 159 bool needsLocalSymbolInRelocatableFile(const DefinedAtom *atom) override { in needsLocalSymbolInRelocatableFile() 160 return (atom->contentType() == DefinedAtom::typeCString); in needsLocalSymbolInRelocatableFile() 163 void generateAtomContent(const DefinedAtom &atom, bool relocatable, 169 void appendSectionRelocations(const DefinedAtom &atom, 298 DefinedAtom::typeGOT, 459 if (inAtom->contentType() == DefinedAtom::typeCFI) in getReferenceInfo() 475 const DefinedAtom *inAtom, uint32_t offsetInAtom, uint64_t fixupAddress, in getPairReferenceInfo() 515 if (inAtom->contentType() == DefinedAtom::typeCFI) in getPairReferenceInfo() [all …]
|
| H A D | ObjCPass.cpp | 65 return DefinedAtom::typeObjCImageInfo; in contentType() 77 return DefinedAtom::permR__; in permissions() 114 const DefinedAtom* getImageInfo() { in getImageInfo()
|
| /freebsd-12.1/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ |
| H A D | ReaderWriterYAML.cpp | 79 for (const lld::DefinedAtom *atom : file.defined()) { in RefNameBuilder() 329 lld::DefinedAtom::mergeSameNameAndSize); in enumeration() 351 io.enumCase(value, "none", lld::DefinedAtom::codeNA); in enumeration() 682 AtomList<lld::DefinedAtom> _definedAtoms; 808 class NormalizedAtom : public lld::DefinedAtom { 838 const lld::DefinedAtom *denormalize(IO &io) { in denormalize() 988 template <> struct MappingTraits<lld::DefinedAtom *> { 990 const lld::DefinedAtom *atomPtr = atom; in mapping() 992 atom = const_cast<lld::DefinedAtom *>(atomPtr); in mapping() 1224 for (const lld::DefinedAtom *a : file->defined()) { in RefNameResolver() [all …]
|
| /freebsd-12.1/contrib/llvm/tools/lld/include/lld/Core/ |
| H A D | SymbolTable.h | 24 class DefinedAtom; variable 38 bool add(const DefinedAtom &); 78 static const DefinedAtom * getEmptyKey() { return nullptr; } in getEmptyKey() 79 static const DefinedAtom * getTombstoneKey() { return (DefinedAtom*)(-1); } in getTombstoneKey() 80 static unsigned getHashValue(const DefinedAtom * const Val); 81 static bool isEqual(const DefinedAtom * const LHS, 82 const DefinedAtom * const RHS); 84 typedef llvm::DenseSet<const DefinedAtom*, AtomMappingInfo> AtomContentSet; 87 bool addByContent(const DefinedAtom &);
|
| H A D | Simple.h | 51 void addAtom(DefinedAtom &a) { in addAtom() 52 _defined.push_back(OwningAtomPtr<DefinedAtom>(&a)); in addAtom() 65 if (auto *p = dyn_cast<DefinedAtom>(&atom)) { in addAtom() 66 addAtom(const_cast<DefinedAtom &>(*p)); in addAtom() 109 AtomVector<DefinedAtom> _defined; 144 class SimpleDefinedAtom : public DefinedAtom { 162 return DefinedAtom::interposeNo; in interposable() 170 return DefinedAtom::sectionBasedOnContent; in sectionChoice() 175 return DefinedAtom::deadStripNormal; in deadStrip() 178 DefinedAtom::reference_iterator begin() const override { in begin() [all …]
|
| H A D | DefinedAtom.h | 85 class DefinedAtom : public Atom { 292 reference_iterator(const DefinedAtom &a, const void *it) in reference_iterator() 316 const DefinedAtom &_atom; 344 return !(atomContentType == DefinedAtom::typeZeroFill || in occupiesDiskSpace() 345 atomContentType == DefinedAtom::typeZeroFillFast || in occupiesDiskSpace() 346 atomContentType == DefinedAtom::typeTLVInitialZeroFill); in occupiesDiskSpace() 360 DefinedAtom() : Atom(definitionRegular) { } in DefinedAtom() function 362 ~DefinedAtom() override = default;
|
| /freebsd-12.1/contrib/llvm/tools/lld/lib/Core/ |
| H A D | SymbolTable.cpp | 37 bool SymbolTable::add(const DefinedAtom &atom) { in add() 39 atom.scope() != DefinedAtom::scopeTranslationUnit) { in add() 41 assert(atom.merge() != DefinedAtom::mergeByContent); in add() 45 if (atom.merge() == DefinedAtom::mergeByContent) { in add() 49 if (atom.permissions() == DefinedAtom::permR__) in add() 108 static MergeResolution mergeSelect(DefinedAtom::Merge first, in mergeSelect() 110 assert(first != DefinedAtom::mergeByContent); in mergeSelect() 111 assert(second != DefinedAtom::mergeByContent); in mergeSelect() 139 const auto *existingDef = cast<DefinedAtom>(existing); in addByName() 140 const auto *newDef = cast<DefinedAtom>(&newAtom); in addByName() [all …]
|
| H A D | DefinedAtom.cpp | 16 DefinedAtom::ContentPermissions DefinedAtom::permissions() const { in permissions() 22 DefinedAtom::ContentPermissions DefinedAtom::permissions(ContentType type) { in permissions()
|
| H A D | Resolver.cpp | 125 void Resolver::doDefinedAtom(OwningAtomPtr<DefinedAtom> atom) { in doDefinedAtom() 141 atom.get()->deadStrip() == DefinedAtom::deadStripNever) { in doDefinedAtom() 300 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) { in updateReferences() 327 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom)) { in markLive() 357 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) in deadStripOptimize() 368 if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(atom.get())) in deadStripOptimize() 369 if (defAtom->scope() == DefinedAtom::scopeGlobal) in deadStripOptimize() 481 if (auto *definedAtom = dyn_cast<DefinedAtom>(atom.get())) { in addAtoms()
|