[PATCH] D96181: Have stripDebugInfo() also strip !llvm.loop annotations.
Adrian Prantl via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 5 17:23:23 PST 2021
This revision was automatically updated to reflect the committed changes.
Closed by commit rG79f46a30c2c4: Have stripDebugInfo() also strip !llvm.loop annotations from all (authored by aprantl).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D96181/new/
https://reviews.llvm.org/D96181
Files:
llvm/lib/IR/DebugInfo.cpp
llvm/test/Verifier/llvm.loop-cu-strip.ll
Index: llvm/test/Verifier/llvm.loop-cu-strip.ll
===================================================================
--- /dev/null
+++ llvm/test/Verifier/llvm.loop-cu-strip.ll
@@ -0,0 +1,21 @@
+; RUN: llvm-as -disable-output < %s -o /dev/null 2>&1 | FileCheck %s
+; RUN: llvm-as < %s -o - | llvm-dis - | FileCheck %s --check-prefix=CHECK-STRIP
+; CHECK: DICompileUnit not listed in llvm.dbg.cu
+; CHECK: ignoring invalid debug info in
+; CHECK-NOT: DICompileUnit not listed in llvm.dbg.cu
+declare hidden void @g() local_unnamed_addr #1 align 2
+define hidden void @f() {
+ tail call void @g() #2, !llvm.loop !5
+ ret void
+}
+!llvm.module.flags = !{!0, !1}
+!0 = !{i32 2, !"Dwarf Version", i32 4}
+!1 = !{i32 2, !"Debug Info Version", i32 3}
+; CHECK-STRIP: ![[MD:.*]] = distinct !{![[MD]], !"fake loop metadata"}
+!5 = distinct !{!5, !6, !6, !"fake loop metadata"}
+!6 = !DILocation(line: 1325, column: 3, scope: !7)
+!7 = distinct !DISubprogram(name: "f", scope: !8, file: !8, line: 1324, type: !9, scopeLine: 1324, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !11)
+!8 = !DIFile(filename: "/", directory: "f.cpp")
+!9 = !DISubroutineType(types: !10)
+!10 = !{}
+!11 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !8)
Index: llvm/lib/IR/DebugInfo.cpp
===================================================================
--- llvm/lib/IR/DebugInfo.cpp
+++ llvm/lib/IR/DebugInfo.cpp
@@ -338,18 +338,13 @@
Changed = true;
I.setDebugLoc(DebugLoc());
}
- }
-
- auto *TermInst = BB.getTerminator();
- if (!TermInst)
- // This is invalid IR, but we may not have run the verifier yet
- continue;
- if (auto *LoopID = TermInst->getMetadata(LLVMContext::MD_loop)) {
- auto *NewLoopID = LoopIDsMap.lookup(LoopID);
- if (!NewLoopID)
- NewLoopID = LoopIDsMap[LoopID] = stripDebugLocFromLoopID(LoopID);
- if (NewLoopID != LoopID)
- TermInst->setMetadata(LLVMContext::MD_loop, NewLoopID);
+ if (auto *LoopID = I.getMetadata(LLVMContext::MD_loop)) {
+ auto *NewLoopID = LoopIDsMap.lookup(LoopID);
+ if (!NewLoopID)
+ NewLoopID = LoopIDsMap[LoopID] = stripDebugLocFromLoopID(LoopID);
+ if (NewLoopID != LoopID)
+ I.setMetadata(LLVMContext::MD_loop, NewLoopID);
+ }
}
}
return Changed;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D96181.321900.patch
Type: text/x-patch
Size: 2337 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210206/075e0c9e/attachment.bin>
More information about the llvm-commits
mailing list