xref: /llvm-project/llvm/lib/Target/WebAssembly/WebAssemblyDebugValueManager.h (revision be24c0200303f04c1db3353d34b83a095387c29e)
1*be24c020SYury Delendik // WebAssemblyDebugValueManager.h - WebAssembly DebugValue Manager -*- C++ -*-//
2*be24c020SYury Delendik //
3*be24c020SYury Delendik //                     The LLVM Compiler Infrastructure
4*be24c020SYury Delendik //
5*be24c020SYury Delendik // This file is distributed under the University of Illinois Open Source
6*be24c020SYury Delendik // License. See LICENSE.TXT for details.
7*be24c020SYury Delendik //
8*be24c020SYury Delendik //===----------------------------------------------------------------------===//
9*be24c020SYury Delendik ///
10*be24c020SYury Delendik /// \file
11*be24c020SYury Delendik /// This file contains the declaration of the WebAssembly-specific
12*be24c020SYury Delendik /// manager for DebugValues associated with the specific MachineInstr.
13*be24c020SYury Delendik ///
14*be24c020SYury Delendik //===----------------------------------------------------------------------===//
15*be24c020SYury Delendik 
16*be24c020SYury Delendik #ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H
17*be24c020SYury Delendik #define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H
18*be24c020SYury Delendik 
19*be24c020SYury Delendik #include "llvm/ADT/SmallVector.h"
20*be24c020SYury Delendik 
21*be24c020SYury Delendik namespace llvm {
22*be24c020SYury Delendik 
23*be24c020SYury Delendik class MachineInstr;
24*be24c020SYury Delendik 
25*be24c020SYury Delendik class WebAssemblyDebugValueManager {
26*be24c020SYury Delendik   SmallVector<MachineInstr *, 2> DbgValues;
27*be24c020SYury Delendik 
28*be24c020SYury Delendik public:
29*be24c020SYury Delendik   WebAssemblyDebugValueManager(MachineInstr *Instr);
30*be24c020SYury Delendik 
31*be24c020SYury Delendik   void move(MachineInstr *Insert);
32*be24c020SYury Delendik   void updateReg(unsigned Reg);
33*be24c020SYury Delendik   void clone(MachineInstr *Insert, unsigned NewReg);
34*be24c020SYury Delendik };
35*be24c020SYury Delendik 
36*be24c020SYury Delendik } // end namespace llvm
37*be24c020SYury Delendik 
38*be24c020SYury Delendik #endif
39