45 lines · c
1//===-- WasmException.h - Wasm Exception Framework -------------*- 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 contains support for writing WebAssembly exception info into asm10// files.11//12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_WASMEXCEPTION_H15#define LLVM_LIB_CODEGEN_ASMPRINTER_WASMEXCEPTION_H16 17#include "EHStreamer.h"18 19namespace llvm {20class AsmPrinter;21class MachineFunction;22struct LandingPadInfo;23template <typename T> class SmallVectorImpl;24 25class LLVM_LIBRARY_VISIBILITY WasmException : public EHStreamer {26public:27 WasmException(AsmPrinter *A) : EHStreamer(A) {}28 29 void endModule() override {}30 void beginFunction(const MachineFunction *MF) override {}31 void endFunction(const MachineFunction *MF) override;32 33protected:34 // Compute the call site table for wasm EH.35 void computeCallSiteTable(36 SmallVectorImpl<CallSiteEntry> &CallSites,37 SmallVectorImpl<CallSiteRange> &CallSiteRanges,38 const SmallVectorImpl<const LandingPadInfo *> &LandingPads,39 const SmallVectorImpl<unsigned> &FirstActions) override;40};41 42} // End of namespace llvm43 44#endif45