aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/llvm12/lib/CodeGen/LiveDebugValues/LiveDebugValues.h
blob: 707b76b73e1a712cc5bb2a0f1e2eb143b1403000 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//===- LiveDebugValues.cpp - Tracking Debug Value MIs ---------*- C++ -*---===// 
// 
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 
// See https://llvm.org/LICENSE.txt for license information. 
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 
// 
//===----------------------------------------------------------------------===// 
 
#include "llvm/CodeGen/MachineFunction.h" 
#include "llvm/CodeGen/TargetPassConfig.h" 
 
namespace llvm { 
 
// Inline namespace for types / symbols shared between different 
// LiveDebugValues implementations. 
inline namespace SharedLiveDebugValues { 
 
// Expose a base class for LiveDebugValues interfaces to inherit from. This 
// allows the generic LiveDebugValues pass handles to call into the 
// implementation. 
class LDVImpl { 
public: 
  virtual bool ExtendRanges(MachineFunction &MF, TargetPassConfig *TPC) = 0; 
  virtual ~LDVImpl() {} 
}; 
 
} // namespace SharedLiveDebugValues 
 
// Factory functions for LiveDebugValues implementations. 
extern LDVImpl *makeVarLocBasedLiveDebugValues(); 
extern LDVImpl *makeInstrRefBasedLiveDebugValues(); 
} // namespace llvm