reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/lld/ELF/InputSection.h
  233 class MergeInputSection : public InputSectionBase {
  292 class EhInputSection : public InputSectionBase {
  312 class InputSection : public InputSectionBase {

Declarations

tools/lld/ELF/CallGraphSort.h
   16 class InputSectionBase;
tools/lld/ELF/Config.h
   27 class InputSectionBase;
tools/lld/ELF/EhFrame.h
   16 class InputSectionBase;
tools/lld/ELF/InputFiles.h
   41 class InputSectionBase;
tools/lld/ELF/LinkerScript.h
   33 class InputSectionBase;
tools/lld/ELF/OutputSections.h
   26 class InputSectionBase;
tools/lld/ELF/Relocations.h
   21 class InputSectionBase;
tools/lld/ELF/Writer.h
   22 class InputSectionBase;

References

include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  127     ArrayRef(const std::vector<U *, A> &Vec,
  129                  std::is_convertible<U *const *, T const *>::value>::type* = 0)
include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  228     typename cast_retty<To, FromTy>::ret_type Res2
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  236       std::is_same<X, typename simplify_type<X>::SimpleType>::value;
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  258   return cast_convert_val<X, Y,
  259                           typename simplify_type<Y>::SimpleType>::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) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  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) {
  360                             typename cast_retty<X, Y>::ret_type>::type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
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) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
tools/lld/ELF/Arch/Mips.cpp
  732       cast<InputSectionBase>(sym->section)->template getFile<ELFT>();
tools/lld/ELF/Arch/PPC64.cpp
  110 getRelaTocSymAndAddend(InputSectionBase *tocSec, uint64_t offset) {
  170   auto *tocISB = cast<InputSectionBase>(defSym->section);
  170   auto *tocISB = cast<InputSectionBase>(defSym->section);
tools/lld/ELF/CallGraphSort.cpp
   82   DenseMap<const InputSectionBase *, int> run();
   86   std::vector<const InputSectionBase *> sections;
   98     std::pair<const InputSectionBase *, const InputSectionBase *>;
   98     std::pair<const InputSectionBase *, const InputSectionBase *>;
  105   DenseMap<const InputSectionBase *, int> secToCluster;
  118     const auto *fromSB = cast<InputSectionBase>(c.first.first->repl);
  118     const auto *fromSB = cast<InputSectionBase>(c.first.first->repl);
  119     const auto *toSB = cast<InputSectionBase>(c.first.second->repl);
  119     const auto *toSB = cast<InputSectionBase>(c.first.second->repl);
  182 DenseMap<const InputSectionBase *, int> CallGraphSort::run() {
  225   DenseMap<const InputSectionBase *, int> orderMap;
  268 DenseMap<const InputSectionBase *, int> computeCallGraphProfileOrder() {
tools/lld/ELF/CallGraphSort.h
   18 llvm::DenseMap<const InputSectionBase *, int> computeCallGraphProfileOrder();
tools/lld/ELF/Config.h
  124   llvm::MapVector<std::pair<const InputSectionBase *, const InputSectionBase *>,
  124   llvm::MapVector<std::pair<const InputSectionBase *, const InputSectionBase *>,
tools/lld/ELF/DWARF.cpp
   29   for (InputSectionBase *sec : obj->getSections()) {
   83 LLDDwarfObj<ELFT>::findAux(const InputSectionBase &sec, uint64_t pos,
tools/lld/ELF/DWARF.h
   23   InputSectionBase *sec = nullptr;
   77   llvm::Optional<llvm::RelocAddrEntry> findAux(const InputSectionBase &sec,
tools/lld/ELF/Driver.cpp
  726       return dyn_cast_or_null<InputSectionBase>(dr->section);
  740     if (InputSectionBase *from = findSection(fields[0]))
  741       if (InputSectionBase *to = findSection(fields[1]))
  756       auto *from = dyn_cast_or_null<InputSectionBase>(fromSym->section);
  756       auto *from = dyn_cast_or_null<InputSectionBase>(fromSym->section);
  757       auto *to = dyn_cast_or_null<InputSectionBase>(toSym->section);
  757       auto *to = dyn_cast_or_null<InputSectionBase>(toSym->section);
 1515 static void readSymbolPartitionSection(InputSectionBase *s) {
 1855     for (InputSectionBase *s : f->getSections())
 1859     for (InputSectionBase *s : f->getSections())
tools/lld/ELF/EhFrame.cpp
   38   EhReader(InputSectionBase *s, ArrayRef<uint8_t> d) : isec(s), d(d) {}
   54   InputSectionBase *isec;
   59 size_t readEhRecordSize(InputSectionBase *s, size_t off) {
tools/lld/ELF/EhFrame.h
   19 size_t readEhRecordSize(InputSectionBase *s, size_t off);
tools/lld/ELF/ICF.cpp
  449   for (InputSectionBase *sec : inputSections) {
tools/lld/ELF/InputFiles.cpp
  233                                 InputSectionBase &sec, uint64_t offset) {
  248 std::string InputFile::getSrcMsg(const Symbol &sym, InputSectionBase &sec,
  284 Optional<DILineInfo> ObjFile<ELFT>::getDILineInfo(InputSectionBase *s,
  290   ArrayRef<InputSectionBase *> sections = s->file->getSections();
  599     InputSectionBase *linkSec = nullptr;
  765 InputSectionBase *ObjFile<ELFT>::getRelocTarget(const Elf_Shdr &sec) {
  769   InputSectionBase *target = this->sections[idx];
  790 InputSectionBase *ObjFile<ELFT>::createInputSection(const Elf_Shdr &sec) {
  837     InputSectionBase *target = getRelocTarget(sec);
 1002     InputSectionBase *sec = this->sections[secIdx];
tools/lld/ELF/InputFiles.h
   81   ArrayRef<InputSectionBase *> getSections() const {
  111   std::string getSrcMsg(const Symbol &sym, InputSectionBase &sec,
  147   std::vector<InputSectionBase *> sections;
  223   llvm::Optional<llvm::DILineInfo> getDILineInfo(InputSectionBase *, uint64_t);
  257   InputSectionBase *getRelocTarget(const Elf_Shdr &sec);
  258   InputSectionBase *createInputSection(const Elf_Shdr &sec);
tools/lld/ELF/InputSection.cpp
   42 std::string toString(const elf::InputSectionBase *sec) {
   47 std::vector<InputSectionBase *> inputSections;
  370     : InputSectionBase(f, header, name, InputSectionBase::Regular) {}
  393   ArrayRef<InputSectionBase *> sections = file->getSections();
  398 InputSectionBase *InputSection::getRelocatedSection() const {
  401   ArrayRef<InputSectionBase *> sections = file->getSections();
  410   InputSectionBase *sec = getRelocatedSection();
 1161     : InputSectionBase(f, header, name, InputSectionBase::EHFrame) {}
 1260     : InputSectionBase(f, header, name, InputSectionBase::Merge) {}
tools/lld/ELF/InputSection.h
  233 class MergeInputSection : public InputSectionBase {
  276   EhSectionPiece(size_t off, InputSectionBase *sec, uint32_t size,
  286   InputSectionBase *sec;
  292 class EhInputSection : public InputSectionBase {
  312 class InputSection : public InputSectionBase {
  336   InputSectionBase *getRelocatedSection() const;
  357 extern std::vector<InputSectionBase *> inputSections;
  361 std::string toString(const elf::InputSectionBase *);
tools/lld/ELF/LinkerScript.cpp
  331 bool LinkerScript::shouldKeep(InputSectionBase *s) {
  344 static bool matchConstraints(ArrayRef<InputSectionBase *> sections,
  356 static void sortSections(MutableArrayRef<InputSectionBase *> vec,
  395 static void sortInputSections(MutableArrayRef<InputSectionBase *> vec,
  408 std::vector<InputSectionBase *>
  410   std::vector<InputSectionBase *> ret;
  416     for (InputSectionBase *sec : inputSections) {
  444 void LinkerScript::discard(InputSectionBase *s) {
  462 std::vector<InputSectionBase *>
  464   std::vector<InputSectionBase *> ret;
  469       for (InputSectionBase *s : cmd->sectionBases)
  482       std::vector<InputSectionBase *> v = createInputSectionList(*sec);
  487         for (InputSectionBase *s : v)
  501         for (InputSectionBase *s : v)
  512         for (InputSectionBase *s : v)
  562 static OutputSection *createSection(InputSectionBase *isec,
  571             InputSectionBase *isec, StringRef outsecName) {
  654       auto *firstIsec = cast<InputSectionBase>(
  654       auto *firstIsec = cast<InputSectionBase>(
  676   std::function<void(InputSectionBase *)> add;
  697       for (InputSectionBase *depSec : s->dependentSections)
  706   for (InputSectionBase *isec : inputSections) {
  714       if (InputSectionBase *rel = sec->getRelocatedSection())
  715         if (auto *relIS = dyn_cast_or_null<InputSectionBase>(rel->parent))
  715         if (auto *relIS = dyn_cast_or_null<InputSectionBase>(rel->parent))
tools/lld/ELF/LinkerScript.h
  173   std::vector<InputSectionBase *> sectionBases;
  235   std::vector<InputSectionBase *>
  238   std::vector<InputSectionBase *> createInputSectionList(OutputSection &cmd);
  268   void discard(InputSectionBase *s);
  279   bool shouldKeep(InputSectionBase *s);
tools/lld/ELF/MarkLive.cpp
   54   void enqueue(InputSectionBase *sec, uint64_t offset);
   59   void resolveReloc(InputSectionBase &sec, RelTy &rel, bool isLSDA);
   72   DenseMap<StringRef, std::vector<InputSectionBase *>> cNamedSections;
   77 static uint64_t getAddend(InputSectionBase &sec,
   84 static uint64_t getAddend(InputSectionBase &sec,
   91 void MarkLive<ELFT>::resolveReloc(InputSectionBase &sec, RelTy &rel,
   99     auto *relSec = dyn_cast_or_null<InputSectionBase>(d->section);
   99     auto *relSec = dyn_cast_or_null<InputSectionBase>(d->section);
  116   for (InputSectionBase *sec : cNamedSections.lookup(sym.getName()))
  164 static bool isReserved(InputSectionBase *sec) {
  180 void MarkLive<ELFT>::enqueue(InputSectionBase *sec, uint64_t offset) {
  208     if (auto *isec = dyn_cast_or_null<InputSectionBase>(d->section))
  208     if (auto *isec = dyn_cast_or_null<InputSectionBase>(d->section))
  241   for (InputSectionBase *sec : inputSections) {
  274     InputSectionBase &sec = *queue.pop_back_val();
  284     for (InputSectionBase *isec : sec.dependentSections)
  306   for (InputSectionBase *sec : inputSections) {
  323     for (InputSectionBase *sec : inputSections)
  356   for (InputSectionBase *sec : inputSections) {
  377     for (InputSectionBase *sec : inputSections)
tools/lld/ELF/OutputSections.cpp
   94 void OutputSection::recordSection(InputSectionBase *isec) {
  169     for (InputSectionBase *s : cmd->sectionBases) {
  219                         llvm::function_ref<int(InputSectionBase *s)> order) {
  239 void OutputSection::sort(llvm::function_ref<int(InputSectionBase *s)> order) {
  383   InputSectionBase *s = first->getRelocatedSection();
tools/lld/ELF/OutputSections.h
   74   void recordSection(InputSectionBase *isec);
  107   void sort(llvm::function_ref<int(InputSectionBase *s)> order);
tools/lld/ELF/Relocations.cpp
   80 static std::string getLocation(InputSectionBase &s, const Symbol &sym,
  134                                         InputSectionBase &c, uint64_t offset,
  158 handleTlsRelocation(RelType type, Symbol &sym, InputSectionBase &c,
  369                                      InputSectionBase &s, uint64_t relOff) {
  595                                  InputSectionBase &sec, RelExpr expr,
  630                              InputSectionBase &sec, RelExpr expr,
  690     InputSectionBase *sec;
  792     InputSectionBase &sec = *l.sec;
  847 static bool maybeReportUndefined(Symbol &sym, InputSectionBase &sec,
  901   explicit OffsetGetter(InputSectionBase &sec) {
  933 static void addRelativeReloc(InputSectionBase *isec, uint64_t offsetInSec,
 1027 static void processRelocAux(InputSectionBase &sec, RelExpr expr, RelType type,
 1165 static void scanReloc(InputSectionBase &sec, OffsetGetter &getOffset, RelTy *&i,
 1388 static void scanRelocs(InputSectionBase &sec, ArrayRef<RelTy> rels) {
 1407 template <class ELFT> void scanRelocations(InputSectionBase &s) {
tools/lld/ELF/Relocations.h
  114 template <class ELFT> void scanRelocations(InputSectionBase &);
tools/lld/ELF/Symbols.cpp
  566                             InputSectionBase *errSec, uint64_t errOffset) {
  584   auto *sec1 = cast<InputSectionBase>(d->section);
  584   auto *sec1 = cast<InputSectionBase>(d->section);
  625                     dyn_cast_or_null<InputSectionBase>(other.section),
tools/lld/ELF/SyntheticSections.cpp
  106   for (InputSectionBase *sec : inputSections) {
  172   std::vector<InputSectionBase *> sections;
  173   for (InputSectionBase *sec : inputSections)
  181   for (InputSectionBase *sec : sections) {
  229   std::vector<InputSectionBase *> sections;
  230   for (InputSectionBase *sec : inputSections)
  238   for (InputSectionBase *sec : sections) {
  264                            uint64_t size, InputSectionBase &section) {
 1534 void RelocationBaseSection::addReloc(RelType dynType, InputSectionBase *isec,
 1540                                      InputSectionBase *inputSec,
 2545   for (InputSectionBase *s : inputSections)
 2575     ArrayRef<InputSectionBase *> sections = sec->file->getSections();
 2579       InputSectionBase *s = sections[r.SectionIndex];
 2710   for (InputSectionBase *s : inputSections)
 3186     if (InputSectionBase *ex = isec->getRelocatedSection())
 3350   return d->kind() == InputSectionBase::Synthetic && d->type == SHT_ARM_EXIDX;
tools/lld/ELF/SyntheticSections.h
   43                      InputSectionBase::Synthetic) {
   57     return d->kind() == InputSectionBase::Synthetic;
  422   DynamicReloc(RelType type, const InputSectionBase *inputSec,
  429   DynamicReloc(RelType type, const InputSectionBase *inputSec,
  446   const InputSectionBase *inputSec = nullptr;
  490   void addReloc(RelType dynType, InputSectionBase *isec, uint64_t offsetInSec,
  494   void addReloc(RelType dynType, InputSectionBase *inputSec,
  543   const InputSectionBase *inputSec;
 1110                            uint64_t size, InputSectionBase &section);
tools/lld/ELF/Target.cpp
   97   for (InputSectionBase *d : inputSections) {
tools/lld/ELF/Target.h
  155   InputSectionBase *isec;
tools/lld/ELF/Thunks.cpp
  321                           InputSectionBase &section) {
tools/lld/ELF/Thunks.h
   43                      InputSectionBase &section);
tools/lld/ELF/Writer.cpp
   55   void forEachRelSec(llvm::function_ref<void(InputSectionBase &)> fn);
   94 StringRef getOutputSectionName(const InputSectionBase *s) {
  102     if (InputSectionBase *rel = isec->getRelocatedSection()) {
  156   std::vector<InputSectionBase *> newSections;
  158     for (InputSectionBase *s : inputSections) {
  161       InputSectionBase *copy;
  178   for (InputSectionBase *&s : inputSections) {
  194   std::vector<InputSectionBase *> &v = inputSections;
  664     if (isa<InputSectionBase>(sec) && !sec->isLive())
  716     InputSectionBase *isec = cast<InputSectionDescription>(*i)->sections[0];
 1014     llvm::function_ref<void(InputSectionBase &)> fn) {
 1020   for (InputSectionBase *isec : inputSections)
 1199 static DenseMap<const InputSectionBase *, int> buildSectionOrder() {
 1200   DenseMap<const InputSectionBase *, int> sectionOrder;
 1232       if (auto *sec = dyn_cast_or_null<InputSectionBase>(d->section)) {
 1232       if (auto *sec = dyn_cast_or_null<InputSectionBase>(d->section)) {
 1233         int &priority = sectionOrder[cast<InputSectionBase>(sec->repl)];
 1262                       const DenseMap<const InputSectionBase *, int> &order) {
 1325                         const DenseMap<const InputSectionBase *, int> &order) {
 1377   DenseMap<const InputSectionBase *, int> order = buildSectionOrder();
 1623   for (InputSectionBase *s : llvm::reverse(inputSections)) {
tools/lld/ELF/Writer.h
   54 llvm::StringRef getOutputSectionName(const InputSectionBase *s);
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/type_traits
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1633     { typedef _Tp   type; };
 1983     { typedef _Up     type; };