blob: 06e8805b5ad08199a792b83d485cd902c9e77e71 [file] [log] [blame]
Yury Delendikbe24c022019-01-15 18:14:12 +00001// WebAssemblyDebugValueManager.h - WebAssembly DebugValue Manager -*- C++ -*-//
2//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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
Yury Delendikbe24c022019-01-15 18:14:12 +00006//
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};
34
35} // end namespace llvm
36
37#endif