llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld
Lang Hames c7c1f21525 Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util.
This patch reduces the number of functions in the interface between RuntimeDyld
and RuntimeDyldChecker by combining "GetXAddress" and "GetXContent" functions
into "GetXInfo" functions that return a struct describing both the address and
content. The GetStubOffset function is also replaced with a pair of utilities,
GetStubInfo and GetGOTInfo, that fit the new scheme. For RuntimeDyld both of
these functions will return the same result, but for the new JITLink linker
(https://reviews.llvm.org/D58704) these will provide the addresses of PLT stubs
and GOT entries respectively.

For JITLink's use, a 'got_addr' utility has been added to the rtdyld-check
language, and the syntax of 'got_addr' and 'stub_addr' has been changed: both
functions now take two arguments, a 'stub container name' and a target symbol
name. For llvm-rtdyld/RuntimeDyld the stub container name is the object file
name and section name, separated by a slash. E.g.:

rtdyld-check: *{8}(stub_addr(foo.o/__text, y)) = y

For the upcoming llvm-jitlink utility, which creates stubs on a per-file basis
rather than a per-section basis, the container name is just the file name. E.g.:

jitlink-check: *{8}(got_addr(foo.o, y)) = y
llvm-svn: 358295
2019-04-12 18:07:28 +00:00
..
Targets Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
CMakeLists.txt [mips][rtdyld] Move MIPS relocation resolution to a subclass and implement N32 relocations 2016-12-13 11:39:18 +00:00
JITSymbol.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RTDyldMemoryManager.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RuntimeDyld.cpp Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
RuntimeDyldCOFF.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RuntimeDyldCOFF.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RuntimeDyldChecker.cpp Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
RuntimeDyldCheckerImpl.h Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
RuntimeDyldELF.cpp [RuntimeDyld] Decouple RuntimeDyldChecker from RuntimeDyld. 2019-04-08 21:50:48 +00:00
RuntimeDyldELF.h Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
RuntimeDyldImpl.h Simplify decoupling between RuntimeDyld/RuntimeDyldChecker, add 'got_addr' util. 2019-04-12 18:07:28 +00:00
RuntimeDyldMachO.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RuntimeDyldMachO.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00