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

Declarations

tools/lld/ELF/AArch64ErrataFix.h
   22 class OutputSection;
tools/lld/ELF/ARMErrataFix.h
   23 class OutputSection;
tools/lld/ELF/InputSection.h
   32 class OutputSection;
tools/lld/ELF/LinkerScript.h
   34 class OutputSection;
tools/lld/ELF/Relocations.h
   22 class OutputSection;
tools/lld/ELF/Writer.h
   21 class OutputSection;

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/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
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);
  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) {
  265   return cast_convert_val<X, Y*,
  296                             typename cast_retty<X, Y>::ret_type>::type
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(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) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return 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/ELF/AArch64ErrataFix.cpp
  629   for (OutputSection *os : outputSections) {
tools/lld/ELF/ARMErrataFix.cpp
  511   for (OutputSection *os : outputSections) {
tools/lld/ELF/Driver.cpp
 1808   Out::elfHeader = make<OutputSection>("", 0, SHF_ALLOC);
 1952     if (auto *sec = dyn_cast<OutputSection>(base))
 1952     if (auto *sec = dyn_cast<OutputSection>(base))
tools/lld/ELF/ICF.cpp
  507     if (auto *sec = dyn_cast<OutputSection>(base))
  507     if (auto *sec = dyn_cast<OutputSection>(base))
tools/lld/ELF/InputSection.cpp
  169     auto *os = cast<OutputSection>(this);
  191   const OutputSection *out = getOutputSection();
  195 OutputSection *SectionBase::getOutputSection() {
  204     return cast<OutputSection>(this);
  377 OutputSection *InputSection::getParent() const {
  378   return cast_or_null<OutputSection>(parent);
  558   OutputSection *os = sym.getOutputSection();
tools/lld/ELF/InputSection.h
   79   OutputSection *getOutputSection();
   80   const OutputSection *getOutputSection() const {
  326   OutputSection *getParent() const;
tools/lld/ELF/LinkerScript.cpp
   52   OutputSection *os = sec->getOutputSection();
   79 OutputSection *LinkerScript::createOutputSection(StringRef name,
   81   OutputSection *&secRef = nameToOutputSection[name];
   82   OutputSection *sec;
   87     sec = make<OutputSection>(name, SHT_PROGBITS, 0);
   95 OutputSection *LinkerScript::getOrCreateOutputSection(StringRef name) {
   96   OutputSection *&cmdRef = nameToOutputSection[name];
   98     cmdRef = make<OutputSection>(name, SHT_PROGBITS, 0);
  226     for (BaseCommand *sub_base : cast<OutputSection>(base)->sectionCommands)
  259     if (auto *os = dyn_cast<OutputSection>(base)) {
  259     if (auto *os = dyn_cast<OutputSection>(base)) {
  292     auto *sec = cast<OutputSection>(base);
  292     auto *sec = cast<OutputSection>(base);
  463 LinkerScript::createInputSectionList(OutputSection &outCmd) {
  481     if (auto *sec = dyn_cast<OutputSection>(base)) {
  481     if (auto *sec = dyn_cast<OutputSection>(base)) {
  531   aether = make<OutputSection>("", 0, SHF_ALLOC);
  545       for (BaseCommand *sub_base : cast<OutputSection>(base)->sectionCommands)
  553 static OutputSection *findByName(ArrayRef<BaseCommand *> vec,
  556     if (auto *sec = dyn_cast<OutputSection>(base))
  556     if (auto *sec = dyn_cast<OutputSection>(base))
  562 static OutputSection *createSection(InputSectionBase *isec,
  564   OutputSection *sec = script->createOutputSection(outsecName, "<internal>");
  569 static OutputSection *
  570 addInputSec(StringMap<TinyPtrVector<OutputSection *>> &map,
  591     OutputSection *out = sec->getRelocatedSection()->getOutputSection();
  644   TinyPtrVector<OutputSection *> &v = map[outsecName];
  645   for (OutputSection *sec : v) {
  666   OutputSection *sec = createSection(isec, outsecName);
  673   StringMap<TinyPtrVector<OutputSection *>> map;
  674   std::vector<OutputSection *> v;
  686       if (OutputSection *sec = findByName(sectionCommands, name)) {
  689         if (OutputSection *os = addInputSec(map, s, name))
  756 void LinkerScript::switchTo(OutputSection *sec) {
  767 MemoryRegion *LinkerScript::findMemoryRegion(OutputSection *sec) {
  796 static OutputSection *findFirstSection(PhdrEntry *load) {
  797   for (OutputSection *sec : outputSections)
  805 void LinkerScript::assignOffsets(OutputSection *sec) {
  875 static bool isDiscardable(OutputSection &sec) {
  933     auto *sec = dyn_cast<OutputSection>(cmd);
  933     auto *sec = dyn_cast<OutputSection>(cmd);
  974     if (auto *sec = dyn_cast<OutputSection>(base)) {
  974     if (auto *sec = dyn_cast<OutputSection>(base)) {
 1001     auto *sec = dyn_cast<OutputSection>(base);
 1001     auto *sec = dyn_cast<OutputSection>(base);
 1034   for (OutputSection *sec : outputSections)
 1108     assignOffsets(cast<OutputSection>(base));
 1137   for (OutputSection *sec : outputSections) {
 1193 std::vector<size_t> LinkerScript::getPhdrIndices(OutputSection *cmd) {
tools/lld/ELF/LinkerScript.h
  221     OutputSection *outSec = nullptr;
  227   llvm::DenseMap<StringRef, OutputSection *> nameToOutputSection;
  238   std::vector<InputSectionBase *> createInputSectionList(OutputSection &cmd);
  240   std::vector<size_t> getPhdrIndices(OutputSection *sec);
  242   MemoryRegion *findMemoryRegion(OutputSection *sec);
  244   void switchTo(OutputSection *sec);
  248   void assignOffsets(OutputSection *sec);
  258   OutputSection *aether;
  263   OutputSection *createOutputSection(StringRef name, StringRef location);
  264   OutputSection *getOrCreateOutputSection(StringRef name);
tools/lld/ELF/MapFile.cpp
   89     OutputSection *osec = syms[i]->getOutputSection();
  132   const OutputSection *osec = sec->getOutputSection();
  163   OutputSection* osec = nullptr;
  174     osec = cast<OutputSection>(base);
tools/lld/ELF/OutputSections.cpp
   36 OutputSection *Out::elfHeader;
   37 OutputSection *Out::programHeaders;
   38 OutputSection *Out::preinitArray;
   39 OutputSection *Out::initArray;
   40 OutputSection *Out::finiArray;
   42 std::vector<OutputSection *> outputSections;
  340 static void finalizeShtGroup(OutputSection *os,
  464 std::vector<InputSection *> getInputSections(OutputSection *os) {
tools/lld/ELF/OutputSections.h
   62   OutputSection *relocationSection = nullptr;
  121 std::vector<InputSection *> getInputSections(OutputSection* os);
  130   static OutputSection *elfHeader;
  131   static OutputSection *programHeaders;
  132   static OutputSection *preinitArray;
  133   static OutputSection *initArray;
  134   static OutputSection *finiArray;
  145 extern std::vector<OutputSection *> outputSections;
tools/lld/ELF/Relocations.cpp
  569   OutputSection *osec = (isRO ? in.bssRelRo : in.bss)->getParent();
 1440     ArrayRef<OutputSection *> outputSections,
 1441     llvm::function_ref<void(OutputSection *, InputSectionDescription *)> fn) {
 1442   for (OutputSection *os : outputSections) {
 1542 void ThunkCreator::mergeThunks(ArrayRef<OutputSection *> outputSections) {
 1581 ThunkSection *ThunkCreator::getISDThunkSec(OutputSection *os, InputSection *isec,
 1616   OutputSection *tos = isec->getParent();
 1653     ArrayRef<OutputSection *> outputSections) {
 1686 ThunkSection *ThunkCreator::addThunkSection(OutputSection *os,
 1769 bool ThunkCreator::createThunks(ArrayRef<OutputSection *> outputSections) {
tools/lld/ELF/Relocations.h
  127   bool createThunks(ArrayRef<OutputSection *> outputSections);
  135   void mergeThunks(ArrayRef<OutputSection *> outputSections);
  137   ThunkSection *getISDThunkSec(OutputSection *os, InputSection *isec,
  143   void createInitialThunkSections(ArrayRef<OutputSection *> outputSections);
  148   ThunkSection *addThunkSection(OutputSection *os, InputSectionDescription *,
tools/lld/ELF/ScriptParser.cpp
   88   bool readSectionDirective(OutputSection *cmd, StringRef tok1, StringRef tok2);
   89   void readSectionAddressType(OutputSection *cmd);
   90   OutputSection *readOverlaySectionDescription();
   91   OutputSection *readOutputSectionDescription(StringRef outSec);
  493   OutputSection *prev = nullptr;
  497     OutputSection *os = readOverlaySectionDescription();
  514       max = std::max(max, cast<OutputSection>(cmd)->size);
  731 bool ScriptParser::readSectionDirective(OutputSection *cmd, StringRef tok1, StringRef tok2) {
  759 void ScriptParser::readSectionAddressType(OutputSection *cmd) {
  779 OutputSection *ScriptParser::readOverlaySectionDescription() {
  780   OutputSection *cmd =
  790 OutputSection *ScriptParser::readOutputSectionDescription(StringRef outSec) {
  791   OutputSection *cmd =
 1115 static void checkIfExists(OutputSection *cmd, StringRef location) {
 1152     OutputSection *sec = script->getOrCreateOutputSection(name);
 1177     OutputSection *cmd = script->getOrCreateOutputSection(name);
 1229     OutputSection *cmd = script->getOrCreateOutputSection(name);
 1264     OutputSection *cmd = script->getOrCreateOutputSection(name);
tools/lld/ELF/Symbols.cpp
  194 OutputSection *Symbol::getOutputSection() const {
  339   else if (d && isa<OutputSection>(d->section))
tools/lld/ELF/Symbols.h
  196   OutputSection *getOutputSection() const;
tools/lld/ELF/SyntheticSections.cpp
  675     if (const OutputSection *os = sym.getOutputSection())
  706   for (const std::pair<const OutputSection *, FileGot::PageBlock> &p : pagesMap)
  735   if (const OutputSection *outSec = sym.getOutputSection()) {
  855     for (std::pair<const OutputSection *, FileGot::PageBlock> &p :
  857       const OutputSection *os = p.first;
  906     for (std::pair<const OutputSection *, FileGot::PageBlock> &p :
  984     for (const std::pair<const OutputSection *, FileGot::PageBlock> &l :
 1041     for (const std::pair<const OutputSection *, FileGot::PageBlock> &l :
 1229 void DynamicSection<ELFT>::addOutSec(int32_t tag, OutputSection *sec) {
 1234 void DynamicSection<ELFT>::addSize(int32_t tag, OutputSection *sec) {
 1347   if (OutputSection *sec = part.dynStrTab->getParent())
 1992   if (OutputSection *sec = strTabSec.getParent())
 2104   if (const OutputSection *os = sym->getOutputSection())
 2225     if (isa<OutputSection>(base))
 2274   if (OutputSection *sec = getPartition().dynSymTab->getParent())
 2410   if (OutputSection *sec = symTab->getParent())
 2869   if (OutputSection *sec = getPartition().dynStrTab->getParent())
 2986   if (OutputSection *sec = getPartition().dynStrTab->getParent())
 3260     OutputSection *aOut = a->getParent();
 3261     OutputSection *bOut = b->getParent();
 3353 ThunkSection::ThunkSection(OutputSection *os, uint64_t off)
tools/lld/ELF/SyntheticSections.h
  339     llvm::SmallMapVector<const OutputSection *, PageBlock, 16> pagesMap;
  430                uint64_t offsetInSec, const OutputSection *outputSec,
  454   const OutputSection *outputSec;
  479   void addOutSec(int32_t tag, OutputSection *sec);
  480   void addSize(int32_t tag, OutputSection *sec);
  599   llvm::DenseMap<OutputSection *, size_t> sectionIndexMap;
 1029   ThunkSection(OutputSection *os, uint64_t off);
tools/lld/ELF/Writer.cpp
   83   void addStartStopSymbols(OutputSection *sec);
  103       OutputSection *out = rel->getOutputSection();
  303 static OutputSection *findSection(StringRef name, unsigned partition = 1) {
  305     if (auto *sec = dyn_cast<OutputSection>(base))
  305     if (auto *sec = dyn_cast<OutputSection>(base))
  331   Out::programHeaders = make<OutputSection>("", 0, SHF_ALLOC);
  563   for (OutputSection *sec : outputSections)
  584     for (OutputSection *sec : outputSections)
  706     auto *sec = dyn_cast<OutputSection>(base);
  706     auto *sec = dyn_cast<OutputSection>(base);
  741 static bool isRelroSection(const OutputSection *sec) {
  841 static unsigned getSectionRank(const OutputSection *sec) {
  968   const OutputSection *a = cast<OutputSection>(aCmd);
  968   const OutputSection *a = cast<OutputSection>(aCmd);
  969   const OutputSection *b = cast<OutputSection>(bCmd);
  969   const OutputSection *b = cast<OutputSection>(bCmd);
  980 void PhdrEntry::add(OutputSection *sec) {
 1078     OutputSection *edata = nullptr;
 1079     for (OutputSection *os : outputSections) {
 1106     for (OutputSection *os : outputSections) {
 1120 static int getRankProximityAux(OutputSection *a, OutputSection *b) {
 1120 static int getRankProximityAux(OutputSection *a, OutputSection *b) {
 1124 static int getRankProximity(OutputSection *a, BaseCommand *b) {
 1125   auto *sec = dyn_cast<OutputSection>(b);
 1125   auto *sec = dyn_cast<OutputSection>(b);
 1155   OutputSection *sec = cast<OutputSection>(*e);
 1155   OutputSection *sec = cast<OutputSection>(*e);
 1167     auto *curSec = dyn_cast<OutputSection>(*i);
 1167     auto *curSec = dyn_cast<OutputSection>(*i);
 1176     auto *os = dyn_cast<OutputSection>(cmd);
 1176     auto *os = dyn_cast<OutputSection>(cmd);
 1324 static void sortSection(OutputSection *sec,
 1379     if (auto *sec = dyn_cast<OutputSection>(base))
 1379     if (auto *sec = dyn_cast<OutputSection>(base))
 1394     auto *os = dyn_cast<OutputSection>(base);
 1394     auto *os = dyn_cast<OutputSection>(base);
 1409     auto isSection = [](BaseCommand *base) { return isa<OutputSection>(base); };
 1459     if (auto *sec = dyn_cast<OutputSection>(base))
 1459     if (auto *sec = dyn_cast<OutputSection>(base))
 1480     OutputSection *orphan = cast<OutputSection>(*nonScriptI);
 1480     OutputSection *orphan = cast<OutputSection>(*nonScriptI);
 1486       return cast<OutputSection>(cmd)->sortRank != rank;
 1498   OutputSection *aOut = la->getParent();
 1499   OutputSection *bOut = lb->getParent();
 1507   for (OutputSection *sec : outputSections) {
 1627     OutputSection *os = ss->getParent();
 1683       if (auto *sec = dyn_cast<OutputSection>(base))
 1683       if (auto *sec = dyn_cast<OutputSection>(base))
 1704     OutputSection *sec = findSection(".sdata");
 1821     if (auto *sec = dyn_cast<OutputSection>(base))
 1821     if (auto *sec = dyn_cast<OutputSection>(base))
 1825   for (OutputSection *sec : outputSections) {
 1837     OutputSection *sec = outputSections[i];
 1946   for (OutputSection *sec : outputSections)
 1957   for (OutputSection *os : outputSections)
 1984   OutputSection *Default = findSection(".text");
 2002   if (OutputSection *sec = findSection(".ARM.exidx"))
 2012 void Writer<ELFT>::addStartStopSymbols(OutputSection *sec) {
 2020 static bool needsPtLoad(OutputSection *sec) {
 2074     if (OutputSection *cmd = findSection(".interp", partNo))
 2093   OutputSection *relroEnd = nullptr;
 2094   for (OutputSection *sec : outputSections) {
 2110   for (OutputSection *sec : outputSections) {
 2151   for (OutputSection *sec : outputSections)
 2158   if (OutputSection *sec = part.dynamic->getParent())
 2172   if (OutputSection *cmd = findSection(".openbsd.randomdata", partNo))
 2194   for (OutputSection *sec : outputSections) {
 2229     OutputSection *cmd = p->firstSec;
 2291 static uint64_t computeFileOffset(OutputSection *os, uint64_t off) {
 2309   OutputSection *first = os->ptLoad->firstSec;
 2315 static uint64_t setFileOffset(OutputSection *os, uint64_t off) {
 2326   for (OutputSection *sec : outputSections)
 2348   for (OutputSection *sec : outputSections) {
 2371   for (OutputSection *sec : outputSections) {
 2385     OutputSection *first = p->firstSec;
 2386     OutputSection *last = p->lastSec;
 2420   OutputSection *sec;
 2461   for (OutputSection *os : outputSections)
 2474   for (OutputSection *sec : outputSections)
 2492   for (OutputSection *sec : outputSections)
 2501   for (OutputSection *sec : outputSections)
 2526   if (OutputSection *sec = findSection(".text")) {
 2581   for (OutputSection *sec : outputSections)
 2610   for (OutputSection *sec : outputSections)
 2655   for (OutputSection *sec : outputSections)
 2659   for (OutputSection *sec : outputSections)
tools/lld/ELF/Writer.h
   35   void add(OutputSection *sec);
   46   OutputSection *firstSec = nullptr;
   47   OutputSection *lastSec = nullptr;
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/type_traits
 1983     { typedef _Up     type; };