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

Declarations

tools/lld/COFF/InputFiles.h
   53 class SectionChunk;
tools/lld/COFF/PDB.h
   25 class SectionChunk;
tools/lld/COFF/SymbolTable.h
   33 class SectionChunk;

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/ADT/iterator.h
   68     : public std::iterator<IteratorCategoryT, T, DifferenceTypeT, PointerT,
include/llvm/Support/Alignment.h
  103     return Constant<std::alignment_of<T>::value>();
include/llvm/Support/Allocator.h
   81   template <typename T> T *Allocate(size_t Num = 1) {
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
   82     return static_cast<T *>(Allocate(Num * sizeof(T), alignof(T)));
  470       for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T))
  470       for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T))
  478       char *Begin = (char *)alignAddr(*I, Align::Of<T>());
  488       DestroyElements((char *)alignAddr(Ptr, Align::Of<T>()),
  496   T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }
  496   T *Allocate(size_t num = 1) { return Allocator.Allocate<T>(num); }
include/llvm/Support/Casting.h
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  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);
  142   return isa_impl_wrap<X, const Y,
  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;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 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) {
  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);
  337 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) {
  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) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
  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) {
tools/lld/COFF/Chunks.cpp
   58 static_assert(sizeof(SectionChunk) <= 88, "SectionChunk grew unexpectedly");
   69 static bool checkSecRel(const SectionChunk *sec, OutputSection *os) {
   78 static void applySecRel(const SectionChunk *sec, uint8_t *off,
  249 static void applySecRelLow12A(const SectionChunk *sec, uint8_t *off,
  255 static void applySecRelHigh12A(const SectionChunk *sec, uint8_t *off,
  268 static void applySecRelLdr(const SectionChunk *sec, uint8_t *off,
  317 static void maybeReportRelocationToDiscarded(const SectionChunk *fromChunk,
  416 void SectionChunk::addAssociative(SectionChunk *child) {
  623 SectionChunk *SectionChunk::findByName(ArrayRef<SectionChunk *> sections,
  623 SectionChunk *SectionChunk::findByName(ArrayRef<SectionChunk *> sections,
  625   for (SectionChunk *c : sections)
  631 void SectionChunk::replace(SectionChunk *other) {
  870 void MergeChunk::addSection(SectionChunk *c) {
  882   for (SectionChunk *c : sections)
  890   for (SectionChunk *c : sections) {
tools/lld/COFF/Chunks.h
  232   void addAssociative(SectionChunk *child);
  267             AssociatedIterator, std::forward_iterator_tag, SectionChunk> {
  270     AssociatedIterator(SectionChunk *head) : cur(head) {}
  276     const SectionChunk &operator*() const { return *cur; }
  277     SectionChunk &operator*() { return *cur; }
  284     SectionChunk *cur = nullptr;
  301   static SectionChunk *findByName(ArrayRef<SectionChunk *> sections,
  301   static SectionChunk *findByName(ArrayRef<SectionChunk *> sections,
  331   SectionChunk *repl;
  334   SectionChunk *assocChildren = nullptr;
  337   void replace(SectionChunk *other);
  353   if (isa<SectionChunk>(this))
  360   if (isa<SectionChunk>(this))
  368   if (isa<SectionChunk>(this))
  375   if (isa<SectionChunk>(this))
  382   if (isa<SectionChunk>(this))
  389   if (isa<SectionChunk>(this))
  407   static void addSection(SectionChunk *c);
  417   std::vector<SectionChunk *> sections;
  634   RuntimePseudoReloc(Defined *sym, SectionChunk *target, uint32_t targetOffset,
  639   SectionChunk *target;
  663   if (auto *sc = dyn_cast<SectionChunk>(this))
tools/lld/COFF/Driver.cpp
  882     if (auto *sec = dyn_cast<SectionChunk>(c))
  882     if (auto *sec = dyn_cast<SectionChunk>(c))
  910     if (SectionChunk *c = dyn_cast_or_null<SectionChunk>(d->getChunk()))
  910     if (SectionChunk *c = dyn_cast_or_null<SectionChunk>(d->getChunk()))
tools/lld/COFF/ICF.cpp
   49   bool assocEquals(const SectionChunk *a, const SectionChunk *b);
   49   bool assocEquals(const SectionChunk *a, const SectionChunk *b);
   51   bool equalsConstant(const SectionChunk *a, const SectionChunk *b);
   51   bool equalsConstant(const SectionChunk *a, const SectionChunk *b);
   52   bool equalsVariable(const SectionChunk *a, const SectionChunk *b);
   52   bool equalsVariable(const SectionChunk *a, const SectionChunk *b);
   54   bool isEligible(SectionChunk *c);
   63   std::vector<SectionChunk *> chunks;
   79 bool ICF::isEligible(SectionChunk *c) {
  129 bool ICF::assocEquals(const SectionChunk *a, const SectionChunk *b) {
  129 bool ICF::assocEquals(const SectionChunk *a, const SectionChunk *b) {
  132     for (const SectionChunk &c : sc->children())
  143 bool ICF::equalsConstant(const SectionChunk *a, const SectionChunk *b) {
  143 bool ICF::equalsConstant(const SectionChunk *a, const SectionChunk *b) {
  176 bool ICF::equalsVariable(const SectionChunk *a, const SectionChunk *b) {
  176 bool ICF::equalsVariable(const SectionChunk *a, const SectionChunk *b) {
  249     if (auto *sc = dyn_cast<SectionChunk>(c)) {
  249     if (auto *sc = dyn_cast<SectionChunk>(c)) {
  261       for (SectionChunk *sc : mc->sections)
tools/lld/COFF/InputFiles.cpp
  215 static SectionChunk *const pendingComdat = reinterpret_cast<SectionChunk *>(1);
  230 SectionChunk *ObjFile::readSection(uint32_t sectionNumber,
  270   auto *c = make<SectionChunk>(this, sec);
  270   auto *c = make<SectionChunk>(this, sec);
  310   SectionChunk *parent = sparseChunks[parentIndex];
  336     SectionChunk *c = readSection(sectionNumber, def, "");
  354   SectionChunk *sc = sparseChunks[sectionNumber];
  380   SectionChunk *sc = sparseChunks[sym.getSectionNumber()];
  482   SectionChunk *leaderChunk = nullptr;
  535     SectionChunk newChunk(this, getSection(sym));
  655       SectionChunk *c = readSection(sectionNumber, def, getName());
  686   if (SectionChunk *sec = SectionChunk::findByName(debugChunks, secName))
  686   if (SectionChunk *sec = SectionChunk::findByName(debugChunks, secName))
tools/lld/COFF/InputFiles.h
  140   ArrayRef<SectionChunk *> getDebugChunks() { return debugChunks; }
  141   ArrayRef<SectionChunk *> getSXDataChunks() { return sXDataChunks; }
  142   ArrayRef<SectionChunk *> getGuardFidChunks() { return guardFidChunks; }
  143   ArrayRef<SectionChunk *> getGuardLJmpChunks() { return guardLJmpChunks; }
  224   SectionChunk *
  270   std::vector<SectionChunk *> resourceChunks;
  273   std::vector<SectionChunk *> debugChunks;
  277   std::vector<SectionChunk *> sXDataChunks;
  281   std::vector<SectionChunk *> guardFidChunks;
  282   std::vector<SectionChunk *> guardLJmpChunks;
  289   std::vector<SectionChunk *> sparseChunks;
tools/lld/COFF/MapFile.cpp
   36     DenseMap<const SectionChunk *, SmallVector<DefinedRegular *, 4>>;
  113       auto *sc = dyn_cast<SectionChunk>(c);
  113       auto *sc = dyn_cast<SectionChunk>(c);
tools/lld/COFF/MarkLive.cpp
   29   SmallVector<SectionChunk *, 256> worklist;
   33     if (auto *sc = dyn_cast<SectionChunk>(c))
   33     if (auto *sc = dyn_cast<SectionChunk>(c))
   58     SectionChunk *sc = worklist.pop_back_val();
   67     for (SectionChunk &c : sc->children())
tools/lld/COFF/PDB.cpp
  238   void handleDebugS(lld::coff::SectionChunk &debugS);
  303   SectionChunk *sec =
  304       SectionChunk::findByName(file->getDebugChunks(), ".debug$H");
  941                                             SectionChunk &debugChunk) {
  956   if (auto *secChunk = dyn_cast_or_null<SectionChunk>(c)) {
  986 void DebugSHandler::handleDebugS(lld::coff::SectionChunk &debugS) {
  989   ArrayRef<uint8_t> relocatedDebugContents = SectionChunk::consumeDebugMagic(
 1190   for (SectionChunk *debugChunk : file->getDebugChunks()) {
 1242       auto *secChunk = dyn_cast<SectionChunk>(c);
 1242       auto *secChunk = dyn_cast<SectionChunk>(c);
 1712 static bool findLineTable(const SectionChunk *c, uint32_t addr,
 1720   for (SectionChunk *dbgC : c->file->getDebugChunks()) {
 1737         SectionChunk::consumeDebugMagic(dbgC->getContents(), ".debug$S");
 1795 getFileLineCodeView(const SectionChunk *c, uint32_t addr) {
tools/lld/COFF/PDB.h
   34 getFileLineCodeView(const SectionChunk *c, uint32_t addr);
tools/lld/COFF/SymbolTable.cpp
   86 static Symbol *getSymbol(SectionChunk *sc, uint32_t addr) {
  112 getFileLineDwarf(const SectionChunk *c, uint32_t addr) {
  124 getFileLine(const SectionChunk *c, uint32_t addr) {
  146     auto *sc = dyn_cast<SectionChunk>(c);
  146     auto *sc = dyn_cast<SectionChunk>(c);
  294     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(refptr->getChunk());
  294     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(refptr->getChunk());
  530 static std::string getSourceLocationObj(ObjFile *file, SectionChunk *sc,
  547 static std::string getSourceLocation(InputFile *file, SectionChunk *sc,
  564                                   SectionChunk *newSc,
  623                                 const coff_symbol_generic *sym, SectionChunk *c,
tools/lld/COFF/SymbolTable.h
   94                      SectionChunk *c = nullptr, uint32_t sectionOffset = 0);
  107                        SectionChunk *newSc = nullptr,
tools/lld/COFF/Symbols.h
  174                  SectionChunk *c = nullptr)
  185   SectionChunk *getChunk() const { return *data; }
  188   SectionChunk **data;
tools/lld/COFF/Writer.cpp
  213                               ArrayRef<SectionChunk *> symIdxChunks,
  408     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(os->chunks[i]);
  408     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(os->chunks[i]);
  501     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(c);
  501     SectionChunk *sc = dyn_cast_or_null<SectionChunk>(c);
  645     if (auto *sec = dyn_cast<SectionChunk>(c))
  702       SectionChunk *sc1 = dyn_cast_or_null<SectionChunk>(s);
  702       SectionChunk *sc1 = dyn_cast_or_null<SectionChunk>(s);
  703       SectionChunk *sc2 = dyn_cast_or_null<SectionChunk>(t);
  703       SectionChunk *sc2 = dyn_cast_or_null<SectionChunk>(t);
  769 static bool shouldStripSectionSuffix(SectionChunk *sc, StringRef name) {
  826     auto *sc = dyn_cast<SectionChunk>(c);
  826     auto *sc = dyn_cast<SectionChunk>(c);
 1070       for (SectionChunk *sc : mc->sections)
 1417       SectionChunk *sc = b->getChunk();
 1492   if (auto *sc = dyn_cast<SectionChunk>(c))
 1492   if (auto *sc = dyn_cast<SectionChunk>(c))
 1536       SectionChunk *sc = dyn_cast<SectionChunk>(d->getChunk());
 1536       SectionChunk *sc = dyn_cast<SectionChunk>(d->getChunk());
 1553     SectionChunk *sc = dyn_cast<SectionChunk>(c);
 1553     SectionChunk *sc = dyn_cast<SectionChunk>(c);
 1624                                     ArrayRef<SectionChunk *> symIdxChunks,
 1626   for (SectionChunk *c : symIdxChunks) {
 1686     auto *sc = dyn_cast<SectionChunk>(c);
 1686     auto *sc = dyn_cast<SectionChunk>(c);
 1856     auto sa = dyn_cast<SectionChunk>(a);
 1857     auto sb = dyn_cast<SectionChunk>(b);
 1869       auto sc = dyn_cast<SectionChunk>(c);
tools/lld/include/lld/Common/Memory.h
   47   llvm::SpecificBumpPtrAllocator<T> alloc;
   52 template <typename T, typename... U> T *make(U &&... args) {
   53   static SpecificAlloc<T> alloc;
   54   return new (alloc.alloc.Allocate()) T(std::forward<U>(args)...);
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  123       typedef _Tp        value_type;
usr/include/c++/7.4.0/type_traits
 1983     { typedef _Up     type; };