//===--- Interpreter.h - Incremental Compilation and Execution---*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines the component which performs incremental code // compilation and execution. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_INTERPRETER_INTERPRETER_H #define LLVM_CLANG_INTERPRETER_INTERPRETER_H #include "clang/AST/Decl.h" #include "clang/AST/GlobalDecl.h" #include "clang/Interpreter/PartialTranslationUnit.h" #include "clang/Interpreter/Value.h" #include "clang/Sema/Ownership.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ExecutionEngine/JITSymbol.h" #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h" #include "llvm/Support/Error.h" #include <memory> #include <vector> namespace llvm { namespace orc { class LLJIT; class LLJITBuilder; class ThreadSafeContext; } // namespace orc } // namespace llvm namespace clang { class CompilerInstance; class IncrementalExecutor; class IncrementalParser; /// Create a pre-configured \c CompilerInstance for incremental processing. class IncrementalCompilerBuilder { … }; /// Generate glue code between the Interpreter's built-in runtime and user code. class RuntimeInterfaceBuilder { … }; /// Provides top-level interfaces for incremental compilation and execution. class Interpreter { … }; } // namespace clang #endif // LLVM_CLANG_INTERPRETER_INTERPRETER_H