|
reference, declaration → definition
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; };