17#ifndef LLVM_EXECUTIONENGINE_ORC_RECORDPROXY_H
18#define LLVM_EXECUTIONENGINE_ORC_RECORDPROXY_H
28template <
typename FnT>
35 auto N = ES.intern(Name);
38 auto Sym = M.lookup(
N);
49template <
typename FnT>
54 return [
P,
Dispatch, Name = std::move(Name),
58 auto Sym = M.lookup(Name);
67template <
typename ProxySpecT,
typename FnT>
71 return recordProxy(
P, ProxySpecT::dispatch, ProxySpecT::Name, LF);
76template <
typename ProxySpecT,
typename FnT>
86template <
typename ProxySpecT,
typename FnT>
90 return recordProxy(
P, ProxySpecT::dispatch, std::move(Name), LF);
Represent a constant reference to a string, i.e.
An ExecutionSession represents a running JIT program.
A set of symbols to look up, each associated with a SymbolLookupFlags value.
Pointer to a pooled string representing a symbol name.
SymbolLookupFlags
Lookup flags that apply to each symbol in a lookup.
DenseMap< SymbolStringPtr, ExecutorSymbolDef > SymbolMap
A map from symbol names (as SymbolStringPtrs) to JITSymbols (address/flags pairs).
unique_function< void(const SymbolMap &M)> LookupApplyFn
Acts on the result of a completed lookup.
LookupPrepareFn recordProxy(Proxy< FnT > *P, typename Proxy< FnT >::DispatchFn Dispatch, StringRef Name, SymbolLookupFlags LF=SymbolLookupFlags::RequiredSymbol)
Builds P over the symbol with the given name, dispatching through Dispatch.
unique_function< LookupApplyFn( SymbolLookupSet &LS, ExecutionSession &ES) const > LookupPrepareFn
Contributes symbols to a lookup, and returns the function that will act on the result.