LLVM: include/llvm/CodeGen/LiveDebugVariables.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#ifndef LLVM_CODEGEN_LIVEDEBUGVARIABLES_H
21#define LLVM_CODEGEN_LIVEDEBUGVARIABLES_H
22
27#include
28
29namespace llvm {
30
31template class ArrayRef;
32class LiveIntervals;
33class VirtRegMap;
34
36
37public:
42
44
45
46
49
50
51
52
54
55#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
56
57 void dump() const;
58#endif
59
61
63
66
67private:
68 std::unique_ptr PImpl;
69};
70
72 std::unique_ptr Impl;
73
74public:
76
78
80
83
85 if (Impl)
86 Impl->releaseMemory();
87 }
89
93 }
94};
95
100
101public:
103
107 }
108
110};
111
113 : public PassInfoMixin {
115
116public:
118
121};
122}
123
124#endif
This header defines various interfaces for pass management in LLVM.
API to communicate dependencies between analyses during invalidation.
A container for analyses that lazily runs them and caches their results.
Represent the analysis usage information of a pass.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
LiveDebugVariables Result
MachineFunctionProperties getSetProperties() const
Result run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
PreservedAnalyses run(MachineFunction &MF, MachineFunctionAnalysisManager &MFAM)
LiveDebugVariablesPrinterPass(raw_ostream &OS)
LiveDebugVariablesWrapperLegacy()
const LiveDebugVariables & getLDV() const
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
MachineFunctionProperties getSetProperties() const override
LiveDebugVariables & getLDV()
bool runOnMachineFunction(MachineFunction &) override
runOnMachineFunction - This method must be overloaded to perform the desired machine code transformat...
void getAnalysisUsage(AnalysisUsage &) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
void dump() const
dump - Print data structures to dbgs().
void splitRegister(Register OldReg, ArrayRef< Register > NewRegs, LiveIntervals &LIS)
splitRegister - Move any user variables in OldReg to the live ranges in NewRegs where they are live.
LiveDebugVariables()
Implementation of the LiveDebugVariables pass.
void print(raw_ostream &OS) const
void analyze(MachineFunction &MF, LiveIntervals *LIS)
LiveDebugVariables(LiveDebugVariables &&)
void emitDebugValues(VirtRegMap *VRM)
emitDebugValues - Emit new DBG_VALUE instructions reflecting the changes that happened during registe...
bool invalidate(MachineFunction &MF, const PreservedAnalyses &PA, MachineFunctionAnalysisManager::Invalidator &Inv)
MachineFunctionPass - This class adapts the FunctionPass interface to allow convenient creation of pa...
Properties which a MachineFunction may have at a given point in time.
MachineFunctionProperties & set(Property P)
A set of analyses that are preserved following a run of a transformation pass.
Wrapper class representing virtual and physical registers.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
ArrayRef(const T &OneElt) -> ArrayRef< T >
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...
A CRTP mix-in to automatically provide informational APIs needed for passes.