|  | //===-- WasmException.h - Wasm Exception Framework -------------*- 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 contains support for writing WebAssembly exception info into asm | 
|  | // files. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #ifndef LLVM_LIB_CODEGEN_ASMPRINTER_WASMEXCEPTION_H | 
|  | #define LLVM_LIB_CODEGEN_ASMPRINTER_WASMEXCEPTION_H | 
|  |  | 
|  | #include "EHStreamer.h" | 
|  | #include "llvm/CodeGen/AsmPrinter.h" | 
|  |  | 
|  | namespace llvm { | 
|  |  | 
|  | class LLVM_LIBRARY_VISIBILITY WasmException : public EHStreamer { | 
|  | public: | 
|  | WasmException(AsmPrinter *A) : EHStreamer(A) {} | 
|  |  | 
|  | void endModule() override; | 
|  | void beginFunction(const MachineFunction *MF) override {} | 
|  | virtual void markFunctionEnd() override; | 
|  | void endFunction(const MachineFunction *MF) override; | 
|  |  | 
|  | protected: | 
|  | // Compute the call site table for wasm EH. | 
|  | void computeCallSiteTable( | 
|  | SmallVectorImpl<CallSiteEntry> &CallSites, | 
|  | const SmallVectorImpl<const LandingPadInfo *> &LandingPads, | 
|  | const SmallVectorImpl<unsigned> &FirstActions) override; | 
|  | }; | 
|  |  | 
|  | } // End of namespace llvm | 
|  |  | 
|  | #endif |