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