1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/tools
Lang Hames 6784638299 [ORC] Redesign the JITSymbolResolver interface to support bulk queries.
Bulk queries reduce IPC/RPC overhead for cross-process JITing and expose
opportunities for parallel compilation.

The two new query methods are lookupFlags, which finds the flags for each of a
set of symbols; and lookup, which finds the address and flags for each of a
set of symbols. (See doxygen comments for more details.)

The existing JITSymbolResolver class is renamed LegacyJITSymbolResolver, and
modified to extend the new JITSymbolResolver class using the following scheme:

- lookupFlags is implemented by calling findSymbolInLogicalDylib for each of the
symbols, then returning the result of calling getFlags() on each of these
symbols. (Importantly: lookupFlags does NOT call getAddress on the returned
symbols, so lookupFlags will never trigger materialization, and lookupFlags will
never call findSymbol, so only symbols that are part of the logical dylib will
return results.)

- lookup is implemented by calling findSymbolInLogicalDylib for each symbol and
falling back to findSymbol if findSymbolInLogicalDylib returns a null result.
Assuming a symbol is found its getAddress method is called to materialize it and
the result (if getAddress succeeds) is stored in the result map, or the error
(if getAddress fails) is returned immediately from lookup. If any symbol is not
found then lookup returns immediately with an error.

This change will break any out-of-tree derivatives of JITSymbolResolver. This
can be fixed by updating those classes to derive from LegacyJITSymbolResolver
instead.

llvm-svn: 322913
2018-01-19 01:12:40 +00:00
..
bugpoint Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
bugpoint-passes Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
dsymutil Thread MCSubtargetInfo through Target::createMCAsmBackend 2018-01-03 08:53:05 +00:00
gold [LLVMgold] Don't set undefined symbol as prevailing 2017-12-15 09:18:21 +00:00
llc Rename CommandFlags.h -> CommandFlags.def 2017-11-27 19:43:58 +00:00
lli [ORC] Redesign the JITSymbolResolver interface to support bulk queries. 2018-01-19 01:12:40 +00:00
llvm-ar Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-as Move the stripping of invalid debug info from the Verifier to AutoUpgrade. 2017-10-02 18:31:29 +00:00
llvm-as-fuzzer cmake: Invent add_llvm_fuzzer to set up fuzzer targets 2017-08-31 00:36:33 +00:00
llvm-bcanalyzer Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-c-test Fixed warning 'function declaration isn’t a prototype [-Werror=strict-prototypes]' 2017-12-16 02:54:17 +00:00
llvm-cat [Bitcode] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-07 23:28:24 +00:00
llvm-cfi-verify Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-config [GlobalISel] Make GlobalISel a non-optional library. 2017-08-03 21:52:25 +00:00
llvm-cov [llvm-cov] Skip unnecessary coverage computations for "export -summary-only". 2018-01-12 20:31:32 +00:00
llvm-cvtres [llvm-cvtres] Add support for ARM64 2017-11-10 22:27:41 +00:00
llvm-cxxdump Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-cxxfilt Add opt-viewer testing 2017-11-29 17:07:41 +00:00
llvm-demangle-fuzzer llvm-demangle-fuzzer: Link in Support 2017-11-17 20:46:55 +00:00
llvm-diff Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-dis [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-dwarfdump [dwarfdump] Lookup needs to be an unsigned long long parameter. 2017-12-19 09:45:26 +00:00
llvm-dwp Thread MCSubtargetInfo through Target::createMCAsmBackend 2018-01-03 08:53:05 +00:00
llvm-extract [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-go Update some code.google.com links 2017-11-13 23:47:58 +00:00
llvm-isel-fuzzer Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-jitlistener Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00
llvm-link [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-lto [Support][CachePruning] Disable cache pruning regression fix 2017-12-19 14:42:38 +00:00
llvm-lto2 Rename CommandFlags.h -> CommandFlags.def 2017-11-27 19:43:58 +00:00
llvm-mc Thread MCSubtargetInfo through Target::createMCAsmBackend 2018-01-03 08:53:05 +00:00
llvm-mc-assemble-fuzzer Rename MCTargetOptionsCommandFlags.h to .def as it is not a normal/modular header as much as it is for stamping out some global/static variables 2017-11-27 19:55:16 +00:00
llvm-mc-disassemble-fuzzer cmake: Invent add_llvm_fuzzer to set up fuzzer targets 2017-08-31 00:36:33 +00:00
llvm-mcmarkup Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-modextract [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-mt [Option] Add 'findNearest' method to catch typos 2018-01-05 17:10:39 +00:00
llvm-nm Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-objcopy temp 2018-01-09 23:00:25 +00:00
llvm-objdump Avoid int to string conversion in Twine or raw_ostream contexts. 2017-12-28 16:58:54 +00:00
llvm-opt-fuzzer Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-opt-report Don't call exit from cl::PrintHelpMessage. 2017-09-07 23:30:48 +00:00
llvm-pdbutil Fix MSVC "not all control paths return a value" warning. 2018-01-17 18:16:28 +00:00
llvm-profdata [llvm-profdata] Don't treat non-fatal merge errors as fatal 2017-11-17 21:18:32 +00:00
llvm-rc llvm-rc/ResourceScriptTokenList.h: Turns this into a .def file to imply that it's non-modular 2017-11-21 00:23:19 +00:00
llvm-readobj [WebAssembly] Remove debug names from symbol table 2018-01-17 19:28:43 +00:00
llvm-rtdyld Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
llvm-shlib [Solaris] enable --whole-archive for shared-library build, disable --version-script for Solaris-ld 2017-07-19 16:07:51 +00:00
llvm-size Fix more inconsistent line endings. NFC. 2017-12-18 19:46:56 +00:00
llvm-special-case-list-fuzzer [llvm-special-case-list-fuzzer] Add fuzz target. 2017-10-17 17:43:34 +00:00
llvm-split [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-stress [Support] Rename tool_output_file to ToolOutputFile, NFC 2017-09-23 01:03:17 +00:00
llvm-strings [llvm-strings] Add support for the -a/--all options 2017-11-14 19:58:36 +00:00
llvm-symbolizer [tools] Add option to install binutils symlinks 2017-11-02 21:43:32 +00:00
llvm-xray Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
lto Rename CommandFlags.h -> CommandFlags.def 2017-11-27 19:43:58 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml [WebAssembly] Remove debug names from symbol table 2018-01-17 19:28:43 +00:00
opt [Debugify] Handled unsized types 2018-01-06 00:37:01 +00:00
opt-viewer Fix some opt-viewer test issues and disable on Windows. 2018-01-05 22:05:13 +00:00
sancov Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
sanstats Fix broken links to the Itanium CXX ABI 2017-09-12 00:19:11 +00:00
verify-uselistorder [CMake] verify-uselistorder depends on intrinsics_gen 2016-11-18 23:30:58 +00:00
xcode-toolchain [llvm] Add stripped installation targets 2017-11-30 21:48:26 +00:00
yaml2obj Instead of ELFFile<ELFT>::Type, use ELFT::Type. NFC. 2018-01-12 02:28:31 +00:00
CMakeLists.txt Fixup r271533, or check-clang didn't find llvm-lto as the target. 2016-06-02 20:39:24 +00:00
LLVMBuild.txt Introduce the llvm-cfi-verify tool (resubmission of D37937). 2017-09-20 20:38:14 +00:00