brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 9a75293 Raw
42 lines · c
1//===------------------ Wasm.h - Wasm Interpreter ---------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file implements interpreter support for code execution in WebAssembly.10//11//===----------------------------------------------------------------------===//12 13#ifndef LLVM_CLANG_LIB_INTERPRETER_WASM_H14#define LLVM_CLANG_LIB_INTERPRETER_WASM_H15 16#ifndef __EMSCRIPTEN__17#error "This requires emscripten."18#endif // __EMSCRIPTEN__19 20#include "IncrementalExecutor.h"21 22namespace clang {23 24class WasmIncrementalExecutor : public IncrementalExecutor {25public:26  WasmIncrementalExecutor(llvm::orc::ThreadSafeContext &TSC);27 28  llvm::Error addModule(PartialTranslationUnit &PTU) override;29  llvm::Error removeModule(PartialTranslationUnit &PTU) override;30  llvm::Error runCtors() const override;31  llvm::Error cleanUp() override;32  llvm::Expected<llvm::orc::ExecutorAddr>33  getSymbolAddress(llvm::StringRef Name,34                   SymbolNameKind NameKind) const override;35 36  ~WasmIncrementalExecutor() override;37};38 39} // namespace clang40 41#endif // LLVM_CLANG_LIB_INTERPRETER_WASM_H42