WebAssemblyDebugValueManager.h revision 353358
1234285Sdim// WebAssemblyDebugValueManager.h - WebAssembly DebugValue Manager -*- C++ -*-// 2234285Sdim// 3234285Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4234285Sdim// See https://llvm.org/LICENSE.txt for license information. 5234285Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6234285Sdim// 7234285Sdim//===----------------------------------------------------------------------===// 8234285Sdim/// 9234285Sdim/// \file 10234285Sdim/// This file contains the declaration of the WebAssembly-specific 11234285Sdim/// manager for DebugValues associated with the specific MachineInstr. 12234285Sdim/// 13234285Sdim//===----------------------------------------------------------------------===// 14234285Sdim 15234285Sdim#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H 16234285Sdim#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H 17249423Sdim 18249423Sdim#include "llvm/ADT/SmallVector.h" 19249423Sdim 20249423Sdimnamespace llvm { 21234285Sdim 22249423Sdimclass MachineInstr; 23234285Sdim 24234285Sdimclass WebAssemblyDebugValueManager { 25234285Sdim SmallVector<MachineInstr *, 2> DbgValues; 26234285Sdim 27234285Sdimpublic: 28261991Sdim WebAssemblyDebugValueManager(MachineInstr *Instr); 29261991Sdim 30234285Sdim void move(MachineInstr *Insert); 31234285Sdim void updateReg(unsigned Reg); 32234285Sdim void clone(MachineInstr *Insert, unsigned NewReg); 33234285Sdim}; 34234285Sdim 35234285Sdim} // end namespace llvm 36234285Sdim 37234285Sdim#endif 38234285Sdim