1343171Sdim// WebAssemblyDebugValueManager.h - WebAssembly DebugValue Manager -*- C++ -*-// 2343171Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6343171Sdim// 7343171Sdim//===----------------------------------------------------------------------===// 8343171Sdim/// 9343171Sdim/// \file 10343171Sdim/// This file contains the declaration of the WebAssembly-specific 11343171Sdim/// manager for DebugValues associated with the specific MachineInstr. 12343171Sdim/// 13343171Sdim//===----------------------------------------------------------------------===// 14343171Sdim 15343171Sdim#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H 16343171Sdim#define LLVM_LIB_TARGET_WEBASSEMBLY_WEBASSEMBLYDEBUGVALUEMANAGER_H 17343171Sdim 18343171Sdim#include "llvm/ADT/SmallVector.h" 19343171Sdim 20343171Sdimnamespace llvm { 21343171Sdim 22343171Sdimclass MachineInstr; 23343171Sdim 24343171Sdimclass WebAssemblyDebugValueManager { 25343171Sdim SmallVector<MachineInstr *, 2> DbgValues; 26343171Sdim 27343171Sdimpublic: 28343171Sdim WebAssemblyDebugValueManager(MachineInstr *Instr); 29343171Sdim 30343171Sdim void move(MachineInstr *Insert); 31343171Sdim void updateReg(unsigned Reg); 32343171Sdim void clone(MachineInstr *Insert, unsigned NewReg); 33360784Sdim void replaceWithLocal(unsigned LocalId); 34343171Sdim}; 35343171Sdim 36343171Sdim} // end namespace llvm 37343171Sdim 38343171Sdim#endif 39