14 #ifndef LLVM_EXECUTIONENGINE_ORC_COMPILEUTILS_H
15 #define LLVM_EXECUTIONENGINE_ORC_COMPILEUTILS_H
44 std::unique_ptr<MemoryBuffer> ObjBuffer(
51 return OwningObj(std::move(*Obj), std::move(ObjBuffer));
52 return OwningObj(
nullptr,
nullptr);
62 #endif // LLVM_EXECUTIONENGINE_ORC_COMPILEUTILS_H
Represents either an error or a value T.
SimpleCompiler(TargetMachine &TM)
Construct a simple compile functor with the given target.
virtual bool addPassesToEmitMC(PassManagerBase &, MCContext *&, raw_pwrite_stream &, bool=true)
Add passes to the specified pass manager to get machine code emitted with the MCJIT.
A Module instance is used to store all the information related to an LLVM module. ...
A raw_ostream that writes to an SmallVector or SmallString.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Simple compile functor: Takes a single IR module and returns an ObjectFile.
Context object for machine code objects.
PassManager manages ModulePassManagers.
bool run(Module &M)
run - Execute all of the passes scheduled for execution.
SmallVector-backed MemoryBuffer instance.
static ErrorOr< OwningBinary< ObjectFile > > createObjectFile(StringRef ObjectPath)
Create ObjectFile from path.
Primary interface to the complete machine description for the target machine.
object::OwningBinary< object::ObjectFile > operator()(Module &M) const
Compile a Module to an ObjectFile.