LLVM
8.0.1
|
Symbol resolution interface. More...
#include "llvm/ExecutionEngine/JITSymbol.h"
Public Types | |
using | LookupSet = std::set< StringRef > |
using | LookupResult = std::map< StringRef, JITEvaluatedSymbol > |
using | OnResolvedFunction = std::function< void(Expected< LookupResult >)> |
Public Member Functions | |
virtual | ~JITSymbolResolver ()=default |
virtual void | lookup (const LookupSet &Symbols, OnResolvedFunction OnResolved)=0 |
Returns the fully resolved address and flags for each of the given symbols. More... | |
virtual Expected< LookupSet > | getResponsibilitySet (const LookupSet &Symbols)=0 |
Returns the subset of the given symbols that should be materialized by the caller. More... | |
Symbol resolution interface.
Allows symbol flags and addresses to be looked up by name. Symbol queries are done in bulk (i.e. you request resolution of a set of symbols, rather than a single one) to reduce IPC overhead in the case of remote JITing, and expose opportunities for parallel compilation.
Definition at line 344 of file JITSymbol.h.
using llvm::JITSymbolResolver::LookupResult = std::map<StringRef, JITEvaluatedSymbol> |
Definition at line 347 of file JITSymbol.h.
using llvm::JITSymbolResolver::LookupSet = std::set<StringRef> |
Definition at line 346 of file JITSymbol.h.
using llvm::JITSymbolResolver::OnResolvedFunction = std::function<void(Expected<LookupResult>)> |
Definition at line 348 of file JITSymbol.h.
|
virtualdefault |
|
pure virtual |
Returns the subset of the given symbols that should be materialized by the caller.
Only weak/common symbols should be looked up, as strong definitions are implicitly always part of the caller's responsibility.
Implemented in llvm::LegacyJITSymbolResolver, and llvm::orc::JITSymbolResolverAdapter.
|
pure virtual |
Returns the fully resolved address and flags for each of the given symbols.
This method will return an error if any of the given symbols can not be resolved, or if the resolution process itself triggers an error.
Implemented in llvm::LegacyJITSymbolResolver, and llvm::orc::JITSymbolResolverAdapter.
Referenced by llvm::RuntimeDyldCheckerImpl::checkAllRulesInBuffer().