13#ifndef LLVM_CLANG_LIB_INTERPRETER_INCREMENTALEXECUTOR_H
14#define LLVM_CLANG_LIB_INTERPRETER_INCREMENTALEXECUTOR_H
16#include "llvm/Support/Error.h"
26class ThreadSafeContext;
31class IncrementalExecutor;
32class IncrementalCompilerBuilder;
48 std::unique_ptr<IncrementalExecutor>
IE;
56 static std::unique_ptr<IncrementalExecutorBuilder>
createDefault();
74 createExecutor(llvm::orc::ThreadSafeContext &TSC,
Create a pre-configured CompilerInstance for incremental processing.
Common configuration and interface for incremental executor builders.
static std::unique_ptr< IncrementalExecutorBuilder > createDefault()
Create the default builder for the platform clangInterpreter is built for.
virtual llvm::Error configure(IncrementalCompilerBuilder &CB, const Options &Opts)=0
Apply execution options and configure the compiler for this backend.
virtual ~IncrementalExecutorBuilder()
std::unique_ptr< IncrementalExecutor > IE
An optional external IncrementalExecutor.
virtual bool supportsJIT() const =0
Probe whether this backend can JIT code for the host.
llvm::Expected< std::unique_ptr< IncrementalExecutor > > create(llvm::orc::ThreadSafeContext &TSC, const clang::TargetInfo &TI)
Return the supplied executor, or create one using the selected backend.
virtual llvm::Expected< llvm::Triple > getHostJITTriple() const =0
Return the host triple used by this backend.
std::vector< std::string > LLVMArgs
Frontend -mllvm arguments for backends that need to restore LLVM options.
virtual llvm::Error LoadDynamicLibrary(const char *name)=0
virtual llvm::Error cleanUp()=0
virtual llvm::Error runCtors() const =0
virtual llvm::Error removeModule(PartialTranslationUnit &PTU)=0
virtual llvm::Expected< llvm::orc::ExecutorAddr > getSymbolAddress(llvm::StringRef Name, SymbolNameKind NameKind) const =0
virtual ~IncrementalExecutor()=default
virtual llvm::Error addModule(PartialTranslationUnit &PTU)=0
Exposes information about the current target.
Top level wrappers for InstallAPI frontend operations.
Diagnostic wrappers for TextAPI types for error reporting.
Options passed to the backend when configuring execution.
unsigned SlabAllocateSize
The class keeps track of various objects created as part of processing incremental inputs.