Home
last modified time | relevance | path

Searched refs:DefinedAtom (Results 1 – 25 of 38) sorted by relevance

12

/freebsd-12.1/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/
H A DLayoutPass.cpp54 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 DLayoutPass.h23 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 DShimPass.cpp52 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 DExecutableAtoms.h73 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 DMachONormalizedFileFromAtoms.cpp49 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 DArchHandler_x86.cpp221 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 DGOTPass.cpp60 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 DCompactUnwindPass.cpp51 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 DArchHandler.h105 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 DStubsPass.cpp43 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 DAtoms.h61 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 DArchHandler_arm.cpp198 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 DMachONormalizedFileToAtoms.cpp59 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 DFile.h41 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 DTLVPass.cpp36 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 DArchHandler_x86_64.cpp147 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 DArchHandler_arm64.cpp139 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 DObjCPass.cpp65 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 DReaderWriterYAML.cpp79 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 DSymbolTable.h24 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 DSimple.h51 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 DDefinedAtom.h85 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 DSymbolTable.cpp37 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 DDefinedAtom.cpp16 DefinedAtom::ContentPermissions DefinedAtom::permissions() const { in permissions()
22 DefinedAtom::ContentPermissions DefinedAtom::permissions(ContentType type) { in permissions()
H A DResolver.cpp125 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()

12