|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/lld/include/lld/Core/AbsoluteAtom.h 18 class AbsoluteAtom : public Atom {
tools/lld/include/lld/Core/DefinedAtom.h 84 class DefinedAtom : public Atom {
tools/lld/include/lld/Core/SharedLibraryAtom.h 18 class SharedLibraryAtom : public Atom {
tools/lld/include/lld/Core/UndefinedAtom.h 18 class UndefinedAtom : public Atom {
Declarations
tools/lld/include/lld/Core/Reference.h 16 class Atom;
tools/lld/include/lld/Core/Resolver.h 27 class Atom;
tools/lld/include/lld/Core/SymbolTable.h 22 class Atom;
References
include/llvm/Support/Casting.h 57 static inline bool doit(const From &Val) {
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
tools/lld/include/lld/Core/AbsoluteAtom.h 18 class AbsoluteAtom : public Atom {
30 static bool classof(const Atom *a) {
tools/lld/include/lld/Core/Atom.h 62 static bool classof(const Atom *a) { return true; }
88 OwningAtomPtr(T *atom) : atom(atom) { }
95 void runDestructor(Atom *atom) {
110 T *const &get() const {
114 T *&get() {
118 T *release() {
119 auto *v = atom;
125 T *atom = nullptr;
tools/lld/include/lld/Core/DefinedAtom.h 84 class DefinedAtom : public Atom {
329 const Atom *target, Reference::Addend a) {
333 static bool classof(const Atom *a) {
tools/lld/include/lld/Core/Reference.h 85 virtual const Atom *target() const = 0;
89 virtual void setTarget(const Atom *) = 0;
tools/lld/include/lld/Core/Resolver.h 71 void markLive(const Atom *atom);
76 void addAtoms(llvm::MutableArrayRef<OwningAtomPtr<Atom>> atoms);
81 std::vector<OwningAtomPtr<Atom>> _atoms;
82 std::set<const Atom *> _deadStripRoots;
83 llvm::DenseSet<const Atom *> _liveAtoms;
84 llvm::DenseSet<const Atom *> _deadAtoms;
86 std::unordered_multimap<const Atom *, const Atom *> _reverseRef;
86 std::unordered_multimap<const Atom *, const Atom *> _reverseRef;
tools/lld/include/lld/Core/SharedLibraryAtom.h 18 class SharedLibraryAtom : public Atom {
38 static bool classof(const Atom *a) {
tools/lld/include/lld/Core/Simple.h 63 void addAtom(const Atom &atom) {
118 Reference::KindValue value, uint64_t off, const Atom *t,
128 const Atom *target() const override {
135 void setTarget(const Atom *newAtom) override { _target = newAtom; }
138 const Atom *_target;
203 const Atom *target, Reference::Addend a) override {
tools/lld/include/lld/Core/SymbolTable.h 49 const Atom *findByName(StringRef sym);
55 const Atom *replacement(const Atom *);
55 const Atom *replacement(const Atom *);
58 bool isCoalescedAway(const Atom *);
61 typedef llvm::DenseMap<const Atom *, const Atom *> AtomToAtom;
61 typedef llvm::DenseMap<const Atom *, const Atom *> AtomToAtom;
73 typedef llvm::DenseMap<StringRef, const Atom *,
85 bool addByName(const Atom &);
tools/lld/include/lld/Core/UndefinedAtom.h 18 class UndefinedAtom : public Atom {
53 static bool classof(const Atom *a) {
tools/lld/lib/Core/Resolver.cpp 58 const Atom *atom = _symbolTable.findByName(undefName);
173 if (atom.get()->scope() != Atom::scopeTranslationUnit)
298 for (const OwningAtomPtr<Atom> &atom : _atoms) {
311 const Atom *newTarget = _symbolTable.replacement(ref->target());
319 void Resolver::markLive(const Atom *atom) {
330 const Atom *target = p.second;
355 for (const OwningAtomPtr<Atom> &atom : _atoms) {
366 for (const OwningAtomPtr<Atom> &atom : _atoms)
373 const Atom *symAtom = _symbolTable.findByName(name);
379 for (const Atom *dsrAtom : _deadStripRoots)
474 llvm::MutableArrayRef<OwningAtomPtr<Atom>> all) {
478 for (OwningAtomPtr<Atom> &atom : all) {
tools/lld/lib/Core/SymbolTable.cpp 84 static NameCollisionResolution collide(Atom::Definition first,
85 Atom::Definition second) {
114 bool SymbolTable::addByName(const Atom &newAtom) {
117 const Atom *existing = findByName(name);
250 const Atom* existing = *pos;
256 const Atom *SymbolTable::findByName(StringRef sym) {
263 const Atom *SymbolTable::replacement(const Atom *atom) {
263 const Atom *SymbolTable::replacement(const Atom *atom) {
274 bool SymbolTable::isCoalescedAway(const Atom *atom) {
281 const Atom *atom = it.second;
tools/lld/lib/ReaderWriter/MachO/ArchHandler.cpp 155 const Atom *ArchHandler::fdeTargetFunction(const DefinedAtom *fde) {
tools/lld/lib/ReaderWriter/MachO/ArchHandler.h 104 virtual const Atom *fdeTargetFunction(const DefinedAtom *fde);
124 const lld::Atom **, Reference::Addend *)>
130 const lld::Atom **)> FindAtomBySymbolIndex;
144 const lld::Atom **target,
160 const lld::Atom **target,
165 typedef std::function<uint32_t (const Atom &atom)> FindSymbolIndexForAtom;
169 typedef std::function<uint32_t (const Atom &atom)> FindSectionIndexForAtom;
173 typedef std::function<uint64_t (const Atom &atom)> FindAddressForAtom;
tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm.cpp 89 const lld::Atom **target,
100 const lld::Atom **target,
189 static uint32_t clearThumbBit(uint32_t value, const Atom *target);
198 bool useExternalRelocationTo(const Atom &target);
510 uint32_t ArchHandler_arm::clearThumbBit(uint32_t value, const Atom *target) {
529 const lld::Atom **target, Reference::Addend *addend) {
645 const lld::Atom **target,
797 const lld::Atom *fromTarget;
1025 const Atom *target = ref->target();
1045 bool ArchHandler_arm::useExternalRelocationTo(const Atom &target) {
tools/lld/lib/ReaderWriter/MachO/ArchHandler_arm64.cpp 144 const lld::Atom **target,
155 const lld::Atom **target,
382 const lld::Atom **target, Reference::Addend *addend) {
477 const lld::Atom **target, Reference::Addend *addend) {
565 const Atom *target = ref->target();
tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86.cpp 95 const lld::Atom **target,
106 const lld::Atom **target,
161 static bool useExternalRelocationTo(const Atom &target);
258 const lld::Atom **target,
357 const lld::Atom **target,
364 const lld::Atom *fromTarget;
421 const Atom *target = ref->target();
530 bool ArchHandler_x86::useExternalRelocationTo(const Atom &target) {
tools/lld/lib/ReaderWriter/MachO/ArchHandler_x86_64.cpp 152 const lld::Atom **target,
163 const lld::Atom **target,
403 const lld::Atom **target,
482 const lld::Atom **target,
486 const lld::Atom *fromTarget;
555 const Atom *target = ref->target();
tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp 35 const Atom *rangeStart;
36 const Atom *personalityFunction;
37 const Atom *lsdaLocation;
38 const Atom *ehFrame;
68 std::vector<const Atom *> &personalities,
147 void addPersonalityFunctions(std::vector<const Atom *> personalities) {
243 void addEhFrameReference(uint32_t offset, const Atom *dest,
249 void addImageReference(uint32_t offset, const Atom *dest,
255 void addImageReferenceIndirect(uint32_t offset, const Atom *dest) {
286 std::map<const Atom *, CompactUnwindEntry> unwindLocs;
287 std::map<const Atom *, const Atom *> dwarfFrames;
287 std::map<const Atom *, const Atom *> dwarfFrames;
288 std::vector<const Atom *> personalities;
362 std::map<const Atom *, CompactUnwindEntry> &unwindLocs,
363 std::vector<const Atom *> &personalities, uint32_t &numLSDAs) {
431 std::map<const Atom *, const Atom *> &dwarfFrames) {
431 std::map<const Atom *, const Atom *> &dwarfFrames) {
438 if (const Atom *function = _archHandler.fdeTargetFunction(ehFrameAtom))
451 const std::map<const Atom *, CompactUnwindEntry> &unwindLocs,
452 const std::vector<const Atom *> &personalities,
453 const std::map<const Atom *, const Atom *> &dwarfFrames) {
453 const std::map<const Atom *, const Atom *> &dwarfFrames) {
483 const std::map<const Atom *, CompactUnwindEntry> &unwindLocs,
484 const std::map<const Atom *, const Atom *> &dwarfFrames) {
484 const std::map<const Atom *, const Atom *> &dwarfFrames) {
502 std::set<const Atom *> usedDwarfFrames;
525 const std::map<const Atom *, CompactUnwindEntry> &unwindLocs,
526 const std::vector<const Atom *> &personalities,
527 const std::map<const Atom *, const Atom *> &dwarfFrames) {
527 const std::map<const Atom *, const Atom *> &dwarfFrames) {
tools/lld/lib/ReaderWriter/MachO/DebugInfo.h 65 Stab(const Atom* atom, uint8_t type, uint8_t other, uint16_t desc,
70 const class Atom* atom;
tools/lld/lib/ReaderWriter/MachO/File.h 39 void addDefinedAtom(StringRef name, Atom::Scope scope,
61 void addDefinedAtomInCustomSection(StringRef name, Atom::Scope scope,
86 void addZeroFillDefinedAtom(StringRef name, Atom::Scope scope,
126 void addTentativeDefAtom(StringRef name, Atom::Scope scope, uint64_t size,
167 const lld::Atom *findUndefAtom(StringRef name) {
266 typedef llvm::StringMap<const lld::Atom *> NameToAtom;
tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp 108 const Atom *target = ref->target();
139 bool shouldReplaceTargetWithGOTAtom(const Atom *target, bool canBypassGOT) {
156 const DefinedAtom *makeGOTEntry(const Atom *target) {
174 llvm::DenseMap<const Atom*, const GOTEntryAtom*> _targetToGOT;
tools/lld/lib/ReaderWriter/MachO/LayoutPass.cpp 55 static std::string atomToDebugString(const Atom *atom) {
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp 150 typedef llvm::DenseMap<const Atom*, uint64_t> AtomToAddress;
167 const Atom *targetOfLazyPointer(const DefinedAtom *lpAtom);
168 const Atom *targetOfStub(const DefinedAtom *stubAtom);
173 uint32_t sectionIndexForAtom(const Atom *atom);
177 typedef llvm::DenseMap<const Atom*, uint32_t> AtomToIndex;
178 struct AtomAndIndex { const Atom *atom; uint32_t index; SymbolScope scope; };
202 std::vector<const Atom *> _machHeaderAliasAtoms;
767 for (const Atom *atom : _machHeaderAliasAtoms) {
923 if (atom->scope() == Atom::scopeTranslationUnit)
988 case Atom::scopeTranslationUnit:
992 case Atom::scopeLinkageUnit:
1010 case Atom::scopeGlobal:
1148 const Atom *Util::targetOfLazyPointer(const DefinedAtom *lpAtom) {
1157 const Atom *Util::targetOfStub(const DefinedAtom *stubAtom) {
1159 if (const Atom *ta = ref->target()) {
1161 const Atom *target = targetOfLazyPointer(lpAtom);
1178 const Atom *target = ref->target();
1198 const Atom *target = targetOfLazyPointer(info.atom);
1207 const Atom *target = targetOfStub(info.atom);
1283 uint32_t Util::sectionIndexForAtom(const Atom *atom) {
1437 const Atom* targ = ref->target();
1540 if (atom->scope() != Atom::scopeGlobal)
tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp 213 Atom::Scope atomScope(uint8_t scope) {
216 return Atom::scopeGlobal;
219 return Atom::scopeLinkageUnit;
221 return Atom::scopeTranslationUnit;
241 uint16_t symbolDescFlags, Atom::Scope symbolScope,
304 Atom::Scope lScope = atomScope(lhs->scope);
305 Atom::Scope rScope = atomScope(rhs->scope);
331 0, Atom::scopeTranslationUnit,
338 0, Atom::scopeTranslationUnit, symbols.front()->value,
586 const lld::Atom *target = file.findUndefAtom(sym->name);
616 const lld::Atom *target = nullptr;
695 static const Atom* findDefinedAtomByName(MachOFile &file, Twine name) {
724 const Atom *currentAtom = nullptr;
tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp 56 const Atom *target = ref->target();
118 llvm::DenseMap<const Atom*, const DefinedAtom*> _targetToShim;
tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp 228 const Atom *target = ref->target();
282 std::vector<const Atom *> targetsNeedingStubs;
292 for (const Atom *target : targetsNeedingStubs) {
338 const lld::Atom* target) {
346 const lld::Atom *target, uint64_t addend) {
354 const lld::Atom* target) {
362 typedef llvm::DenseMap<const Atom*,
tools/lld/lib/ReaderWriter/MachO/TLVPass.cpp 88 const Atom *target = ref->target();
112 const DefinedAtom *makeTLVPEntry(const Atom *target) {
131 llvm::DenseMap<const Atom*, const TLVPEntryAtom*> _targetToTLVP;
tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp 86 const lld::Atom *target = ref->target();
113 void buildDuplicateNameMap(const lld::Atom &atom) {
128 const lld::Atom *prevAtom = pos->second;
154 bool hasRefName(const lld::Atom *atom) { return _refNames.count(atom); }
156 StringRef refName(const lld::Atom *atom) {
161 typedef llvm::StringMap<const lld::Atom *> NameToAtom;
162 typedef llvm::DenseMap<const lld::Atom *, std::string> AtomToRefName;
185 const lld::Atom *lookup(StringRef name) const {
194 typedef llvm::StringMap<const lld::Atom *> NameToAtom;
196 void add(StringRef name, const lld::Atom *atom) {
295 static void enumeration(IO &io, lld::Atom::Scope &value) {
296 io.enumCase(value, "global", lld::Atom::scopeGlobal);
297 io.enumCase(value, "hidden", lld::Atom::scopeLinkageUnit);
298 io.enumCase(value, "static", lld::Atom::scopeTranslationUnit);
778 const lld::Atom *target() const override { return _target; }
781 void setTarget(const lld::Atom *a) override { _target = a; }
783 const lld::Atom *_target;
913 const Atom *target, Reference::Addend a) override {
usr/include/c++/7.4.0/bits/move.h 72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/std_function.h 299 _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
628 using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/type_traits 1659 { typedef _Tp&& type; };
1983 { typedef _Up type; };