13#ifndef LLVM_EXECUTIONENGINE_ORC_IRCOMPILELAYER_H
14#define LLVM_EXECUTIONENGINE_ORC_IRCOMPILELAYER_H
53 std::unique_ptr<IRCompiler> Compile);
59 void emit(std::unique_ptr<MaterializationResponsibility> R,
63 mutable std::mutex IRLayerMutex;
65 std::unique_ptr<IRCompiler> Compile;
Machine Check Debug Module
Tagged union holding either a T or a Error.
A Module instance is used to store all the information related to an LLVM module.
An ExecutionSession represents a running JIT program.
virtual Expected< std::unique_ptr< MemoryBuffer > > operator()(Module &M)=0
IRCompiler(IRSymbolMapper::ManglingOptions MO)
const IRSymbolMapper::ManglingOptions & getManglingOptions() const
IRSymbolMapper::ManglingOptions & manglingOptions()
void emit(std::unique_ptr< MaterializationResponsibility > R, ThreadSafeModule TSM) override
Emit should materialize the given IR.
IRCompiler & getCompiler()
std::function< void(MaterializationResponsibility &R, ThreadSafeModule TSM)> NotifyCompiledFunction
void setNotifyCompiled(NotifyCompiledFunction NotifyCompiled)
Interface for layers that accept LLVM IR.
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
Interface for Layers that accept object files.
An LLVM Module together with a shared ThreadSafeContext.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.