|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Declarations
include/llvm/ExecutionEngine/JITLink/JITLink.h 37 class Symbol;
References
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/ExecutionEngine/JITLink/JITLink.h 71 Edge(Kind K, OffsetT Offset, Symbol &Target, AddendT Addend)
83 Symbol &getTarget() const { return *Target; }
84 void setTarget(Symbol &Target) { this->Target = &Target; }
89 Symbol *Target = nullptr;
215 void addEdge(Edge::Kind K, Edge::OffsetT Offset, Symbol &Target,
296 static Symbol &constructCommon(void *SymStorage, Block &Base, StringRef Name,
304 auto *Sym = reinterpret_cast<Symbol *>(SymStorage);
305 new (Sym) Symbol(Base, 0, Name, Size, Linkage::Weak, S, IsLive, false);
309 static Symbol &constructExternal(void *SymStorage, Addressable &Base,
315 auto *Sym = reinterpret_cast<Symbol *>(SymStorage);
316 new (Sym) Symbol(Base, 0, Name, Size, Linkage::Strong, Scope::Default,
321 static Symbol &constructAbsolute(void *SymStorage, Addressable &Base,
327 auto *Sym = reinterpret_cast<Symbol *>(SymStorage);
328 new (Sym) Symbol(Base, 0, Name, Size, L, S, IsLive, false);
332 static Symbol &constructAnonDef(void *SymStorage, Block &Base,
337 auto *Sym = reinterpret_cast<Symbol *>(SymStorage);
338 new (Sym) Symbol(Base, Offset, StringRef(), Size, Linkage::Strong,
343 static Symbol &constructNamedDef(void *SymStorage, Block &Base,
349 auto *Sym = reinterpret_cast<Symbol *>(SymStorage);
350 new (Sym) Symbol(Base, Offset, Name, Size, L, S, IsLive, IsCallable);
361 Symbol(const Symbol &) = delete;
362 Symbol &operator=(const Symbol &) = delete;
362 Symbol &operator=(const Symbol &) = delete;
363 Symbol(Symbol &&) = delete;
364 Symbol &operator=(Symbol &&) = delete;
364 Symbol &operator=(Symbol &&) = delete;
500 raw_ostream &operator<<(raw_ostream &OS, const Symbol &A);
514 using SymbolSet = DenseSet<Symbol *>;
555 void addSymbol(Symbol &Sym) {
560 void removeSymbol(Symbol &Sym) {
581 for (auto *Sym : Sec.symbols()) {
588 Symbol *getFirstSymbol() const {
592 Symbol *getLastSymbol() const {
610 Symbol *First = nullptr;
611 Symbol *Last = nullptr;
617 using ExternalSymbolSet = DenseSet<Symbol *>;
646 void destroySymbol(Symbol &S) {
702 Section::symbol_iterator, Symbol *>;
705 const_section_iterator, Section::const_symbol_iterator, const Symbol *>;
749 Symbol &addExternalSymbol(StringRef Name, uint64_t Size) {
750 auto &Sym = Symbol::constructExternal(
750 auto &Sym = Symbol::constructExternal(
751 Allocator.Allocate<Symbol>(), createAddressable(0, false), Name, Size);
757 Symbol &addAbsoluteSymbol(StringRef Name, JITTargetAddress Address,
759 auto &Sym = Symbol::constructAbsolute(Allocator.Allocate<Symbol>(),
759 auto &Sym = Symbol::constructAbsolute(Allocator.Allocate<Symbol>(),
759 auto &Sym = Symbol::constructAbsolute(Allocator.Allocate<Symbol>(),
767 Symbol &addCommonSymbol(StringRef Name, Scope S, Section &Section,
770 auto &Sym = Symbol::constructCommon(
770 auto &Sym = Symbol::constructCommon(
771 Allocator.Allocate<Symbol>(),
780 Symbol &addAnonymousSymbol(Block &Content, JITTargetAddress Offset,
783 auto &Sym = Symbol::constructAnonDef(Allocator.Allocate<Symbol>(), Content,
783 auto &Sym = Symbol::constructAnonDef(Allocator.Allocate<Symbol>(), Content,
783 auto &Sym = Symbol::constructAnonDef(Allocator.Allocate<Symbol>(), Content,
790 Symbol &addDefinedSymbol(Block &Content, JITTargetAddress Offset,
793 auto &Sym =
794 Symbol::constructNamedDef(Allocator.Allocate<Symbol>(), Content, Offset,
794 Symbol::constructNamedDef(Allocator.Allocate<Symbol>(), Content, Offset,
838 void makeExternal(Symbol &Sym) {
853 void removeExternalSymbol(Symbol &Sym) {
864 void removeAbsoluteSymbol(Symbol &Sym) {
876 void removeDefinedSymbol(Symbol &Sym) {
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)));
88 !std::is_same<typename std::remove_cv<T>::type, void>::value, void>::type
89 Deallocate(T *Ptr, size_t Num = 1) {
90 Deallocate(static_cast<const void *>(Ptr), Num * sizeof(T));
include/llvm/Support/Error.h 474 Expected(OtherT &&Val,
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) {
lib/ExecutionEngine/JITLink/BasicGOTAndStubsBuilder.h 39 Symbol &getGOTEntrySymbol(Symbol &Target) {
39 Symbol &getGOTEntrySymbol(Symbol &Target) {
46 auto &GOTEntry = impl().createGOTEntry(Target);
55 Symbol &getStubSymbol(Symbol &Target) {
55 Symbol &getStubSymbol(Symbol &Target) {
61 auto &StubSymbol = impl().createStub(Target);
74 DenseMap<StringRef, Symbol *> GOTEntries;
75 DenseMap<StringRef, Symbol *> Stubs;
lib/ExecutionEngine/JITLink/EHFrameSupport.cpp 161 auto &CIESymbol =
306 auto *TargetSymbol = getSymbolAtAddress(PCBegin);
325 Symbol *LSDASymbol = nullptr;
lib/ExecutionEngine/JITLink/EHFrameSupportImpl.h 41 virtual Symbol *getSymbolAtAddress(JITTargetAddress Addr) = 0;
42 virtual Symbol &createCIERecord(JITTargetAddress RecordAddr,
44 virtual Expected<Symbol &>
46 Symbol &CIE, size_t CIEOffset, Symbol &Func,
46 Symbol &CIE, size_t CIEOffset, Symbol &Func,
47 size_t FuncOffset, Symbol *LSDA, size_t LSDAOffset) = 0;
63 CIEInformation(Symbol &CIESymbol) : CIESymbol(&CIESymbol) {}
64 Symbol *CIESymbol = nullptr;
lib/ExecutionEngine/JITLink/JITLink.cpp 101 raw_ostream &operator<<(raw_ostream &OS, const Symbol &Sym) {
146 for (auto *Sym : Symbols)
162 for (auto *Sym : defined_symbols()) {
184 for (auto *Sym : absolute_symbols())
189 for (auto *Sym : external_symbols())
212 for (auto *Sym : G.defined_symbols())
lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp 260 for (auto *Sym : G->external_symbols()) {
271 for (auto *Sym : G->external_symbols()) {
301 std::vector<Symbol *> Worklist;
305 for (auto *Sym : G.defined_symbols())
311 auto *Sym = Worklist.back();
333 std::vector<Symbol *> SymbolsToRemove;
334 for (auto *Sym : G.defined_symbols())
337 for (auto *Sym : SymbolsToRemove) {
lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp 290 auto &Sym = G->addAnonymousSymbol(B, 0, Size, false, IsLive);
498 auto &Sym =
lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.h 49 Symbol *getSymbolAtAddress(JITTargetAddress Address) override {
50 if (auto *Sym = Builder.getSymbolByAddress(Address))
56 Symbol &createCIERecord(JITTargetAddress RecordAddr,
61 auto &CIESymbol =
67 Expected<Symbol &> createFDERecord(JITTargetAddress RecordAddr,
68 StringRef RecordContent, Symbol &CIE,
69 size_t CIEOffset, Symbol &Func,
70 size_t FuncOffset, Symbol *LSDA,
83 auto &FDESymbol =
126 Symbol *GraphSymbol = nullptr;
200 Symbol *getSymbolByAddress(JITTargetAddress Address) {
209 Expected<Symbol &> findSymbolByAddress(JITTargetAddress Address) {
210 auto *Sym = getSymbolByAddress(Address);
226 void setCanonicalSymbol(Symbol &Sym) {
227 auto *&CanonicalSymEntry = AddrToCanonicalSymbol[Sym.getAddress()];
262 std::map<JITTargetAddress, Symbol *> AddrToCanonicalSymbol;
lib/ExecutionEngine/JITLink/MachO_arm64.cpp 117 std::tuple<MachOARM64RelocationKind, Symbol *, uint64_t>;
149 Symbol *FromSymbol;
164 Symbol *ToSymbol = nullptr;
180 Symbol *TargetSymbol;
247 Symbol *TargetSymbol = nullptr;
406 Symbol &createGOTEntry(Symbol &Target) {
406 Symbol &createGOTEntry(Symbol &Target) {
413 void fixGOTEdge(Edge &E, Symbol &GOTEntry) {
428 Symbol &createStub(Symbol &Target) {
428 Symbol &createStub(Symbol &Target) {
432 auto &GOTEntrySymbol = getGOTEntrySymbol(Target);
437 void fixExternalBranchEdge(Edge &E, Symbol &Stub) {
lib/ExecutionEngine/JITLink/MachO_x86_64.cpp 119 using PairRelocInfo = std::tuple<MachOX86RelocationKind, Symbol *, uint64_t>;
151 Symbol *FromSymbol;
166 Symbol *ToSymbol = nullptr;
182 Symbol *TargetSymbol;
255 Symbol *TargetSymbol = nullptr;
372 Symbol &createGOTEntry(Symbol &Target) {
372 Symbol &createGOTEntry(Symbol &Target) {
379 void fixGOTEdge(Edge &E, Symbol &GOTEntry) {
391 Symbol &createStub(Symbol &Target) {
391 Symbol &createStub(Symbol &Target) {
395 auto &GOTEntrySymbol = getGOTEntrySymbol(Target);
400 void fixExternalBranchEdge(Edge &E, Symbol &Stub) {
lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp 90 for (auto *Sym : G.defined_symbols())
109 for (auto *Sym : G.absolute_symbols())
169 using AnonToNamedDependenciesMap = DenseMap<const Symbol *, SymbolNameSet>;
173 for (auto *Sym : G.defined_symbols())
179 for (auto *Sym : G.absolute_symbols())
190 for (auto *Sym : G.defined_symbols())
200 for (auto *Sym : G.defined_symbols()) {
211 auto &TargetSym = E.getTarget();
239 WorklistEntry(Symbol *Sym, DenseSet<Symbol *> SymAnonDeps)
239 WorklistEntry(Symbol *Sym, DenseSet<Symbol *> SymAnonDeps)
242 Symbol *Sym = nullptr;
243 DenseSet<Symbol *> SymAnonDeps;
246 for (auto *Sym : G.defined_symbols())
249 DenseSet<Symbol *> SymAnonDeps;
252 auto &TargetSym = E.getTarget();
273 auto *Sym = WLEntry.Sym;
277 for (auto *TargetSym : SymAnonDeps) {
tools/llvm-jitlink/llvm-jitlink-macho.cpp 40 static Expected<Symbol &> getMachOGOTTarget(LinkGraph &G, Block &B) {
44 auto &TargetSym = E->getTarget();
61 static Expected<Symbol &> getMachOStubTarget(LinkGraph &G, Block &B) {
65 auto &GOTSym = E->getTarget();
113 auto *FirstSym = *Sec.symbols().begin();
114 auto *LastSym = FirstSym;
115 for (auto *Sym : Sec.symbols()) {
tools/llvm-jitlink/llvm-jitlink.cpp 192 std::vector<Symbol *> Syms(S->symbols().begin(), S->symbols().end());
198 for (auto *Sym : Syms) {
unittests/ExecutionEngine/JITLink/JITLinkTestCommon.h 155 for (auto *Sym : G.defined_symbols()) {
171 static jitlink::Symbol &symbol(jitlink::LinkGraph &G, StringRef Name) {
172 for (auto *Sym : G.defined_symbols())
175 for (auto *Sym : G.external_symbols())
178 for (auto *Sym : G.absolute_symbols())
unittests/ExecutionEngine/JITLink/MachO_x86_64_Tests.cpp 51 static void verifyIsPointerTo(LinkGraph &G, Block &B, Symbol &Target) {
64 static void verifyGOTLoad(LinkGraph &G, Edge &E, Symbol &Target) {
75 Block &CallerBlock, Edge &E, Symbol &Callee) {
90 Block &CallerBlock, Edge &E, Symbol &Callee) {
107 Block &CallerBlock, Edge &E, Symbol &Callee) {
165 auto &Baz = symbol(G, "_baz");
166 auto &Y = symbol(G, "_y");
167 auto &Bar = symbol(G, "_bar");
168 auto &Foo = symbol(G, "_foo");
169 auto &Foo_1 = symbol(G, "_foo.1");
170 auto &Foo_2 = symbol(G, "_foo.2");
171 auto &X = symbol(G, "_x");
172 auto &P = symbol(G, "_p");
usr/include/c++/7.4.0/bits/move.h 46 inline _GLIBCXX_CONSTEXPR _Tp*
47 __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
72 constexpr _Tp&&
83 constexpr _Tp&&
usr/include/c++/7.4.0/bits/refwrap.h 63 : _Maybe_get_result_type<_Functor>
176 : _Weak_result_type_impl<typename remove_cv<_Functor>::type>
215 : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
215 : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
215 : _Weak_result_type<_Tp>, _Refwrap_base_arg1<_Tp>, _Refwrap_base_arg2<_Tp>
327 : public _Reference_wrapper_base<typename remove_cv<_Tp>::type>
329 _Tp* _M_data;
332 typedef _Tp type;
334 reference_wrapper(_Tp& __indata) noexcept
338 reference_wrapper(_Tp&&) = delete;
345 operator _Tp&() const noexcept
348 _Tp&
353 typename result_of<_Tp&(_Args&&...)>::type
usr/include/c++/7.4.0/type_traits 215 : public __is_void_helper<typename remove_cv<_Tp>::type>::type
581 : public __or_<is_lvalue_reference<_Tp>,
582 is_rvalue_reference<_Tp>>::type
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
601 : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
602 is_void<_Tp>>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
638 : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
762 typename add_rvalue_reference<_Tp>::type declval() noexcept;
1538 typedef decltype(__test<_From, _To>(0)) type;
1545 : public __is_convertible_helper<_From, _To>::type
1554 { typedef _Tp type; };
1563 { typedef _Tp type; };
1574 remove_const<typename remove_volatile<_Tp>::type>::type type;
1633 { typedef _Tp type; };
1659 { typedef _Tp&& type; };
1664 : public __add_rvalue_reference_helper<_Tp>
1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h 407 T* p, ::std::ostream* os) {
416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {