1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib
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
..
Analysis Add a ProfileCount class to represent entry counts. 2018-01-17 22:24:23 +00:00
AsmParser Allow dso_local on ifunc. 2018-01-12 17:03:43 +00:00
BinaryFormat Simplify. 2017-10-19 01:32:18 +00:00
Bitcode [NFC] fix trivial typos in comments 2018-01-17 12:29:38 +00:00
CodeGen [CodeGen][NFC] Rename IsVerbose to IsStandalone in Machine*::print 2018-01-18 18:05:15 +00:00
DebugInfo [DWARFv5] Number the line-table's directory array correctly. 2018-01-18 20:33:35 +00:00
Demangle Silence a bunch of implicit fallthrough warnings 2017-12-19 22:05:25 +00:00
ExecutionEngine [ORC] Redesign the JITSymbolResolver interface to support bulk queries. 2018-01-19 01:12:40 +00:00
Fuzzer [libFuzzer] Delete llvm/lib/Fuzzer 2017-10-16 20:48:19 +00:00
FuzzMutate [FuzzMutate] Don't crash when mutator is unable to find operation 2017-12-19 08:52:51 +00:00
IR Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
IRReader Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
LineEditor
Linker Fix crash when linking metadata with ODR type uniquing 2018-01-09 18:32:53 +00:00
LTO Don't drop dso_local in LTO. 2018-01-18 05:38:43 +00:00
MC [CodeView] Add line numbers for inlined call sites 2018-01-18 22:55:43 +00:00
Object [WebAssembly] Remove debug names from symbol table 2018-01-17 19:28:43 +00:00
ObjectYAML [WebAssembly] Add COMDAT support 2018-01-09 23:43:14 +00:00
Option [Option] For typo '-foo', suggest '--foo' 2018-01-09 19:38:04 +00:00
Passes Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +00:00
ProfileData Remove superfluous copies in sample profiling. 2017-12-28 18:10:41 +00:00
Support [X86] Add intrinsic support for the RDPID instruction 2018-01-18 23:52:31 +00:00
TableGen Avoid int to string conversion in Twine or raw_ostream contexts. 2017-12-28 16:58:54 +00:00
Target [X86] Add intrinsic support for the RDPID instruction 2018-01-18 23:52:31 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
Transforms [HWAsan] Fix uninitialized variable. 2018-01-18 14:19:04 +00:00
WindowsManifest
XRay [XRay] Use optimistic logging model for FDR mode 2017-11-21 07:16:57 +00:00
CMakeLists.txt
LLVMBuild.txt