summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/call-function
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-01-19 01:12:40 +0000
committerLang Hames <lhames@gmail.com>2018-01-19 01:12:40 +0000
commit817df9fa0c482e8fb5ead383e762c6f228705519 (patch)
tree02f562153a5e4e9a0d98a5c9922ae1b37a99c458 /lldb/packages/Python/lldbsuite/test/expression_command/call-function
parentc0b4aba786ced2531667a6ac277d0ef5696b8805 (diff)
downloadbcm5719-llvm-817df9fa0c482e8fb5ead383e762c6f228705519.tar.gz
bcm5719-llvm-817df9fa0c482e8fb5ead383e762c6f228705519.zip
[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
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud