|
reference, declaration → definition
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 §ion) {
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 §ion);
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 §ion) {
tools/lld/ELF/Thunks.h 43 InputSectionBase §ion);
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; };