brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 9b545df Raw
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