LLVM: include/llvm/Transforms/Utils/MemoryOpRemark.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_TRANSFORMS_UTILS_MEMORYOPREMARK_H
15#define LLVM_TRANSFORMS_UTILS_MEMORYOPREMARK_H
16
20#include
21
22namespace llvm {
23
32
33
34
40
44
46
47
49
51
52protected:
54
57
59
60private:
61 template<typename ...Ts>
62 std::unique_ptr makeRemark(Ts... Args);
63
64
66
68
70
71 void visitCall(const CallInst &CI);
72
73
74
75 template
77
78
79 void visitKnownLibCall(const CallInst &CI, LibFunc LF,
81
83
84 struct VariableInfo {
85 std::optional Name;
86 std::optional<uint64_t> Size;
87 bool isEmpty() const { return !Name && ; }
88 };
89
90
91
92 void visitPtr(Value *V, bool IsSrc, DiagnosticInfoIROptimization &R);
93 void visitVariable(const Value *V, SmallVectorImpl &Result);
94};
95
96
101
102
104
105protected:
111};
112
113}
114
115#endif
uint64_t IntrinsicInst * II
This class represents a function call, abstracting a target machine's calling convention.
A parsed version of the target data layout string in and methods for querying it.
Common features for diagnostics dealing with optimization remarks that are used by IR passes.
A wrapper class for inspecting calls to intrinsic functions.
An instruction for storing to memory.
StringRef - Represent a constant reference to a string, i.e.
Provides information about what library functions are available for the current target.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr Value
DiagnosticKind
Defines the different supported kind of a diagnostic.
@ DK_OptimizationRemarkAnalysis
@ DK_OptimizationRemarkMissed