13#ifndef LLVM_CLANG_LIB_INTERPRETER_INCREMENTALEXECUTOR_H
14#define LLVM_CLANG_LIB_INTERPRETER_INCREMENTALEXECUTOR_H
16#include "llvm/ADT/DenseMap.h"
17#include "llvm/ADT/StringRef.h"
18#include "llvm/ExecutionEngine/Orc/ExecutionUtils.h"
19#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
26class JITTargetMachineBuilder;
29class ThreadSafeContext;
35struct PartialTranslationUnit;
39 using CtorDtorIterator = llvm::orc::CtorDtorIterator;
40 std::unique_ptr<llvm::orc::LLJIT> Jit;
41 llvm::orc::ThreadSafeContext &TSCtx;
43 llvm::DenseMap<const PartialTranslationUnit *, llvm::orc::ResourceTrackerSP>
53 llvm::orc::LLJITBuilder &JITBuilder, llvm::Error &Err);
58 virtual llvm::Error
runCtors()
const;
llvm::orc::LLJIT & GetExecutionEngine()
virtual llvm::Error runCtors() const
virtual llvm::Error addModule(PartialTranslationUnit &PTU)
virtual ~IncrementalExecutor()
llvm::Expected< llvm::orc::ExecutorAddr > getSymbolAddress(llvm::StringRef Name, SymbolNameKind NameKind) const
static llvm::Expected< std::unique_ptr< llvm::orc::LLJITBuilder > > createDefaultJITBuilder(llvm::orc::JITTargetMachineBuilder JTMB)
virtual llvm::Error removeModule(PartialTranslationUnit &PTU)
virtual llvm::Error cleanUp()
The JSON file list parser is used to communicate input to InstallAPI.
Diagnostic wrappers for TextAPI types for error reporting.
The class keeps track of various objects created as part of processing incremental inputs.