reference, declarationdefinition
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; };