Skip to content

Commit 49e3860

Browse files
authored
[Sanitizer] Create DiagnosticInfoInstrumentation for IR Instrumentation reporting. (#106356)
This PR adds DK_Instrumentation enum to DiagnosticKind and DiagnosticInfoInstrumentation is extended from DiagnosticsInfo for IR instrumentation reporting.
1 parent caebb45 commit 49e3860

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

llvm/include/llvm/IR/DiagnosticInfo.h

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ enum DiagnosticKind {
6565
DK_Lowering,
6666
DK_DebugMetadataVersion,
6767
DK_DebugMetadataInvalid,
68+
DK_Instrumentation,
6869
DK_ISelFallback,
6970
DK_SampleProfile,
7071
DK_OptimizationRemark,
@@ -950,6 +951,22 @@ class DiagnosticInfoMIRParser : public DiagnosticInfo {
950951
}
951952
};
952953

954+
/// Diagnostic information for IR instrumentation reporting.
955+
class DiagnosticInfoInstrumentation : public DiagnosticInfo {
956+
const Twine &Msg;
957+
958+
public:
959+
DiagnosticInfoInstrumentation(const Twine &DiagMsg,
960+
DiagnosticSeverity Severity = DS_Warning)
961+
: DiagnosticInfo(DK_Instrumentation, Severity), Msg(DiagMsg) {}
962+
963+
void print(DiagnosticPrinter &DP) const override;
964+
965+
static bool classof(const DiagnosticInfo *DI) {
966+
return DI->getKind() == DK_Instrumentation;
967+
}
968+
};
969+
953970
/// Diagnostic information for ISel fallback path.
954971
class DiagnosticInfoISelFallback : public DiagnosticInfo {
955972
/// The function that is concerned by this diagnostic.

llvm/lib/IR/DiagnosticInfo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,10 @@ void DiagnosticInfoUnsupported::print(DiagnosticPrinter &DP) const {
375375
DP << Str;
376376
}
377377

378+
void DiagnosticInfoInstrumentation::print(DiagnosticPrinter &DP) const {
379+
DP << Msg;
380+
}
381+
378382
void DiagnosticInfoISelFallback::print(DiagnosticPrinter &DP) const {
379383
DP << "Instruction selection used fallback path for " << getFunction();
380384
}

llvm/lib/Transforms/Instrumentation/Instrumentation.cpp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,6 @@ static cl::opt<bool> ClIgnoreRedundantInstrumentation(
2424
"ignore-redundant-instrumentation",
2525
cl::desc("Ignore redundant instrumentation"), cl::Hidden, cl::init(false));
2626

27-
namespace {
28-
/// Diagnostic information for IR instrumentation reporting.
29-
class DiagnosticInfoInstrumentation : public DiagnosticInfo {
30-
const Twine &Msg;
31-
32-
public:
33-
DiagnosticInfoInstrumentation(const Twine &DiagMsg,
34-
DiagnosticSeverity Severity = DS_Warning)
35-
: DiagnosticInfo(DK_Linker, Severity), Msg(DiagMsg) {}
36-
void print(DiagnosticPrinter &DP) const override { DP << Msg; }
37-
};
38-
} // namespace
39-
4027
/// Check if module has flag attached, if not add the flag.
4128
bool llvm::checkIfAlreadyInstrumented(Module &M, StringRef Flag) {
4229
if (!M.getModuleFlag(Flag)) {

0 commit comments

Comments
 (0)