WebAssemblyDebugValueManager.h revision 360784
1// WebAssemblyDebugValueManager.h - WebAssembly DebugValue Manager -*- 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-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// This file contains the declaration of the WebAssembly-specific
11/// manager for DebugValues associated with the specific MachineInstr.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H
16#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H
17
18#include "llvm/ADT/SmallVector.h"
19
20namespace llvm {
21
22class MachineInstr;
23
24class WebAssemblyDebugValueManager {
25  SmallVector<MachineInstr *, 2> DbgValues;
26
27public:
28  WebAssemblyDebugValueManager(MachineInstr *Instr);
29
30  void move(MachineInstr *Insert);
31  void updateReg(unsigned Reg);
32  void clone(MachineInstr *Insert, unsigned NewReg);
33  void replaceWithLocal(unsigned LocalId);
34};
35
36} // end namespace llvm
37
38#endif
39