Skip to content

Commit 526310e

Browse files
authored
[Remarks] Elaborate on called intrinsics (#143985)
1 parent 01a7a21 commit 526310e

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

llvm/lib/IR/DiagnosticInfo.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "llvm/IR/GlobalValue.h"
2626
#include "llvm/IR/Instruction.h"
2727
#include "llvm/IR/Instructions.h"
28+
#include "llvm/IR/IntrinsicInst.h"
2829
#include "llvm/IR/LLVMContext.h"
2930
#include "llvm/IR/Metadata.h"
3031
#include "llvm/IR/Module.h"
@@ -211,6 +212,9 @@ DiagnosticInfoOptimizationBase::Argument::Argument(StringRef Key,
211212
else if (isa<Constant>(V)) {
212213
raw_string_ostream OS(Val);
213214
V->printAsOperand(OS, /*PrintType=*/false);
215+
} else if (auto *II = dyn_cast<IntrinsicInst>(V)) {
216+
raw_string_ostream OS(Val);
217+
OS << "call " << II->getCalledFunction()->getName();
214218
} else if (auto *I = dyn_cast<Instruction>(V)) {
215219
Val = I->getOpcodeName();
216220
} else if (auto *MD = dyn_cast<MetadataAsValue>(V)) {

llvm/test/Transforms/GVN/opt-remarks.ll

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,19 @@
6262
; YAML-NEXT: - ClobberedBy: store
6363
; YAML-NEXT: DebugLoc: { File: '/tmp/s.c', Line: 2, Column: 10 }
6464
; YAML-NEXT: ...
65+
; YAML-NEXT: --- !Missed
66+
; YAML-NEXT: Pass: gvn
67+
; YAML-NEXT: Name: LoadClobbered
68+
; YAML-NEXT: Function: lifetime_end
69+
; YAML-NEXT: Args:
70+
; YAML-NEXT: - String: 'load of type '
71+
; YAML-NEXT: - Type: i8
72+
; YAML-NEXT: - String: ' not eliminated'
73+
; YAML-NEXT: - String: ' in favor of '
74+
; YAML-NEXT: - OtherAccess: store
75+
; YAML-NEXT: - String: ' because it is clobbered by '
76+
; YAML-NEXT: - ClobberedBy: call llvm.lifetime.end.p0
77+
; YAML-NEXT: ...
6578

6679
define i32 @arg(ptr %p, i32 %i) {
6780
entry:
@@ -93,6 +106,15 @@ entry:
93106
%add = add i32 %load1, %load
94107
ret i32 %add
95108
}
109+
110+
define i8 @lifetime_end(ptr %p, i8 %val) {
111+
call void @llvm.lifetime.start.p0(i64 32, ptr %p)
112+
store i8 %val, ptr %p
113+
call void @llvm.lifetime.end.p0(i64 32, ptr %p)
114+
%1 = load i8, ptr %p
115+
ret i8 %1
116+
}
117+
96118
!llvm.dbg.cu = !{!0}
97119
!llvm.module.flags = !{!3, !4, !5}
98120
!llvm.ident = !{!6}

0 commit comments

Comments
 (0)