<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><span class=""></span><span class="">Thanks, I like the -implicit-check-not idea, done in r</span><span class="">336123.</span><span class=""><br class=""><br class=""></span><span class="">vedant<br class=""><br class=""><blockquote type="cite" class="">On Jul 2, 2018, at 9:28 AM, <a href="mailto:paul.robinson@sony.com" class="">paul.robinson@sony.com</a> wrote:<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">-----Original Message-----<br class="">From: <a href="mailto:vsk@apple.com" class="">vsk@apple.com</a> [mailto:vsk@apple.com]<br class="">Sent: Monday, July 02, 2018 12:17 PM<br class="">To: Robinson, Paul<br class="">Cc: llvm-commits@lists.llvm.org<br class="">Subject: Re: [llvm] r335897 - [Debugify] Do not report line 0 locations as<br class="">errors<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">On Jul 2, 2018, at 8:25 AM, paul.robinson@sony.com wrote:<br class=""><br class=""><br class=""><br class=""><blockquote type="cite" class="">-----Original Message-----<br class="">From: llvm-commits [mailto:llvm-commits-bounces@lists.llvm.org] On<br class=""></blockquote></blockquote>Behalf<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Of Vedant Kumar via llvm-commits<br class="">Sent: Thursday, June 28, 2018 2:21 PM<br class="">To: llvm-commits@lists.llvm.org<br class="">Subject: [llvm] r335897 - [Debugify] Do not report line 0 locations as<br class="">errors<br class=""><br class="">Author: vedantk<br class="">Date: Thu Jun 28 11:21:11 2018<br class="">New Revision: 335897<br class=""><br class="">URL: http://llvm.org/viewvc/llvm-project?rev=335897&view=rev<br class="">Log:<br class="">[Debugify] Do not report line 0 locations as errors<br class=""><br class="">The checking logic should not treat artificial locations as being<br class="">somehow problematic. Producing these locations can be the desired<br class="">behavior of some passes.<br class=""><br class="">See llvm.org/PR37961.<br class=""><br class="">Added:<br class=""> llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll<br class="">Modified:<br class=""> llvm/trunk/tools/opt/Debugify.cpp<br class=""><br class="">Added: llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll<br class="">URL: http://llvm.org/viewvc/llvm-<br class="">project/llvm/trunk/test/DebugInfo/debugify-report-missing-locs-<br class="">only.ll?rev=335897&view=auto<br class=""><br class=""></blockquote></blockquote>==========================================================================<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">====<br class="">--- llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll<br class=""></blockquote></blockquote>(added)<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">+++ llvm/trunk/test/DebugInfo/debugify-report-missing-locs-only.ll Thu<br class=""></blockquote></blockquote>Jun<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">28 11:21:11 2018<br class="">@@ -0,0 +1,31 @@<br class="">+; RUN: opt -check-debugify < %s -S -o - 2>&1 | FileCheck %s<br class="">+<br class="">+; CHECK: ERROR: Instruction with empty DebugLoc in function foo --<br class=""></blockquote></blockquote>ret<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">void<br class="">+define void @foo() !dbg !6 {<br class="">+ ret void<br class="">+}<br class="">+<br class=""></blockquote><br class="">Please put a CHECK-LABEL before the CHECK-NOT so we can be sure the two<br class="">checks are looking at the correct functions.<br class=""></blockquote><br class="">Each check contains the function name it's checking for explicitly. Is<br class="">that insufficient? If so, what label would we check for, given that<br class="">diagnostics and IR are printed to different files?<br class=""></blockquote><br class="">Ah, sorry, missed that the diagnostics are on stderr.<br class="">But when I see CHECK followed by CHECK-NOT, I always get worried about <br class="">things being reordered, and then a CHECK-NOT doesn't look at all the <br class="">output you want it to look at, and so gives you a false pass.<br class=""><br class="">Two common ways to address that are to repeat the CHECK-NOT on both<br class="">sides of the CHECK, or use `--implicit-check-not` in the FileCheck call.<br class="">--paulr<br class=""><br class=""><blockquote type="cite" style="font-family: Menlo-Regular; font-size: 11px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class="">thanks,<br class="">vedant<br class=""><br class=""><br class=""><blockquote type="cite" class="">Thanks,<br class="">--paulr<br class=""><br class=""><blockquote type="cite" class="">+; CHECK-NOT: ERROR: Instruction with empty DebugLoc in function bar<br class="">+define i32 @bar() !dbg !9 {<br class="">+ ret i32 0, !dbg !15<br class="">+}<br class="">+<br class="">+declare void @llvm.dbg.value(metadata, metadata, metadata)<br class="">+<br class="">+!llvm.dbg.cu = !{!0}<br class="">+!llvm.debugify = !{!3, !4}<br class="">+!llvm.module.flags = !{!5}<br class="">+<br class="">+!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer:<br class="">"debugify", isOptimized: true, runtimeVersion: 0, emissionKind:<br class=""></blockquote></blockquote>FullDebug,<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">enums: !2)<br class="">+!1 = !DIFile(filename: "void", directory: "/")<br class="">+!2 = !{}<br class="">+!3 = !{i32 6}<br class="">+!4 = !{i32 1}<br class="">+!5 = !{i32 2, !"Debug Info Version", i32 3}<br class="">+!6 = distinct !DISubprogram(name: "foo", linkageName: "foo", scope:<br class=""></blockquote></blockquote>null,<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">file: !1, line: 1, type: !7, isLocal: false, isDefinition: true,<br class="">scopeLine: 1, isOptimized: true, unit: !0, retainedNodes: !2)<br class="">+!7 = !DISubroutineType(types: !2)<br class="">+!9 = distinct !DISubprogram(name: "bar", linkageName: "bar", scope:<br class=""></blockquote></blockquote>null,<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">file: !1, line: 2, type: !7, isLocal: false, isDefinition: true,<br class="">scopeLine: 2, isOptimized: true, unit: !0, retainedNodes: !10)<br class="">+!10 = !{!11}<br class="">+!11 = !DILocalVariable(name: "1", scope: !9, file: !1, line: 3, type:<br class="">!12)<br class="">+!12 = !DIBasicType(name: "ty32", size: 32, encoding: DW_ATE_unsigned)<br class="">+!15 = !DILocation(line: 0, column: 1, scope: !9)<br class=""><br class="">Modified: llvm/trunk/tools/opt/Debugify.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-" class="">http://llvm.org/viewvc/llvm-</a><br class=""><br class=""></blockquote></blockquote>project/llvm/trunk/tools/opt/Debugify.cpp?rev=335897&r1=335896&r2=335897&v<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">iew=diff<br class=""><br class=""></blockquote></blockquote>==========================================================================<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">====<br class="">--- llvm/trunk/tools/opt/Debugify.cpp (original)<br class="">+++ llvm/trunk/tools/opt/Debugify.cpp Thu Jun 28 11:21:11 2018<br class="">@@ -237,11 +237,13 @@ bool checkDebugifyMetadata(Module &M,<br class=""> continue;<br class=""> }<br class=""><br class="">- dbg() << "ERROR: Instruction with empty DebugLoc in function ";<br class="">- dbg() << F.getName() << " --";<br class="">- I.print(dbg());<br class="">- dbg() << "\n";<br class="">- HasErrors = true;<br class="">+ if (!DL) {<br class="">+ dbg() << "ERROR: Instruction with empty DebugLoc in function<br class=""></blockquote></blockquote>";<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">+ dbg() << F.getName() << " --";<br class="">+ I.print(dbg());<br class="">+ dbg() << "\n";<br class="">+ HasErrors = true;<br class="">+ }<br class=""> }<br class=""><br class=""> // Find missing variables and mis-sized debug values.<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits<br class=""></blockquote></blockquote></blockquote></blockquote><br class=""></span></body></html>