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 && Size; }

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