<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">*puts on refactoring gloves*<div class=""><br class=""></div><div class="">r245622</div><div class=""><br class=""></div><div class="">-- adrian</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Aug 20, 2015, at 2:44 PM, Eric Christopher <<a href="mailto:echristo@gmail.com" class="">echristo@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Yup.</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Thu, Aug 20, 2015 at 2:41 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="">SGTM. We're only dealing with 14 instances of it anyway.</div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Aug 20, 2015 at 2:30 PM, Adrian Prantl <span dir="ltr" class=""><<a href="mailto:aprantl@apple.com" target="_blank" class="">aprantl@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On Aug 20, 2015, at 1:54 PM, Eric Christopher <<a href="mailto:echristo@gmail.com" target="_blank" class="">echristo@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Thu, Aug 20, 2015 at 1:52 PM Adrian Prantl via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class="">On Aug 20, 2015, at 11:38 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank" class="">dblaikie@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Aug 20, 2015 at 11:24 AM, Adrian Prantl via llvm-commits<span class=""> </span><span dir="ltr" class=""><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>></span><span class=""> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: adrian<br class="">Date: Thu Aug 20 13:24:02 2015<br class="">New Revision: 245589<br class=""><br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D245589-26view-3Drev&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=EtKQ5g1zzu-b3OZrJlxcjqb4iXC6E05iJjC_rMoboF0&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=245589&view=rev</a><br class="">Log:<br class="">Fix a bug that caused SimplifyCFG to drop DebugLocs.<br class=""><br class="">Instruction::dropUnknownMetadata(KnownSet) is supposed to preserve all<br class="">metadata in KnownSet, but the condition for DebugLocs was inverted.<br class=""><br class="">Most users of dropUnknownMetadata() actually worked around this by not<br class="">adding LLVMContext::MD_dbg to their list of KnowIDs.<br class="">This is now made explicit.<br class=""></blockquote><div class=""><br class=""></div><div class="">I wonder if this API should just never drop dbg? (were any callers actually using it to drop dbg data) I imagine those existing callers came about not by deliberately working around the weird behavior, but by simply omitting dbg because they didn't think they needed to have it?<br class=""></div></div></div></div></div></blockquote><div class=""><br class=""></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div class="">There must have been some degree of deliberation involved: after I fixed the condition there was at least one testcase that failed because an optimization had dropped the DebugLoc of a dbg.value intrinsic, which is illegal. Good, maybe the assertion was added later.</div><div class=""><br class=""></div></div></div></blockquote><div class=""><br class=""></div><div class="">"Some degree". Probably not intentional would be my guess though.</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><div class=""></div><div class="">If we change the API we should probably rename the function to take the debug info location preserving into account.</div></div></div><div style="word-wrap:break-word" class=""><div class=""><div class=""><br class=""></div></div></div></blockquote><div class=""><br class=""></div><div class="">I think always preserving would be the right way to go.</div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">I we’re doing this, I suggest renaming the function to something like dropUnknownNonDebugMetadata() to avoid confusion about what it does.</div><div class="">Any better ideas for descriptive names?</div><span class=""><font color="#888888" class=""><div class=""><br class=""></div>-- adrian</font></span><div class=""><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><div class="gmail_quote"><div class=""><br class=""></div><div class="">-eric</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><div class=""></div>-- adrian</div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class="">& new callers could arise with the same assumption, but now they'll be (pretty silently) wrong... (but that's just the general problem of optimization passes not being terribly aware of debug info preservation/propagation)</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br class="">Modified:<br class="">   <span class=""> </span>llvm/trunk/lib/IR/Metadata.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/Scalar/GVN.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp<br class="">   <span class=""> </span>llvm/trunk/lib/Transforms/Vectorize/BBVectorize.cpp<br class="">   <span class=""> </span>llvm/trunk/test/Transforms/SimplifyCFG/basictest.ll<br class=""><br class="">Modified: llvm/trunk/lib/IR/Metadata.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_IR_Metadata.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=wzZSN6kqTDDDoW7l2jw9R54F1utkPape8AnlfvGqa1I&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/IR/Metadata.cpp (original)<br class="">+++ llvm/trunk/lib/IR/Metadata.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -1062,7 +1062,7 @@ void Instruction::dropUnknownMetadata(Ar<br class="">   KnownSet.insert(KnownIDs.begin(), KnownIDs.end());<br class=""><br class="">   // Drop debug if needed<br class="">-  if (KnownSet.erase(LLVMContext::MD_dbg))<br class="">+  if (!KnownSet.erase(LLVMContext::MD_dbg))<br class="">     DbgLoc = DebugLoc();<br class=""><br class="">   if (!hasMetadataHashEntry())<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_InstCombine_InstCombineLoadStoreAlloca.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=6KlcQlv4NcZd8p1JUrb_I1gvJJrO8nshSHv-mGcHfIQ&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -754,6 +754,7 @@ Instruction *InstCombiner::visitLoadInst<br class="">                                                     <span class=""> </span>6, AA, &AATags)) {<br class="">     if (LoadInst *NLI = dyn_cast<LoadInst>(AvailableVal)) {<br class="">       unsigned KnownIDs[] = {<br class="">+        LLVMContext::MD_dbg,<br class="">         LLVMContext::MD_tbaa,<br class="">         LLVMContext::MD_alias_scope,<br class="">         LLVMContext::MD_noalias,<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Scalar_GVN.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=CBzA4N3fiGql6aJLY83wxjjajWLuo3IGiOFMzwHt-V8&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -1780,6 +1780,7 @@ static void patchReplacementInstruction(<br class="">     // regions, and so we need a conservative combination of the noalias<br class="">     // scopes.<br class="">     static const unsigned KnownIDs[] = {<br class="">+      LLVMContext::MD_dbg,<br class="">       LLVMContext::MD_tbaa,<br class="">       LLVMContext::MD_alias_scope,<br class="">       LLVMContext::MD_noalias,<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Scalar_MemCpyOptimizer.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=aRPTmlmNnQD_2UTS0yuoxPUVNVsDdokceWyM5-VSwNY&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -743,6 +743,7 @@ bool MemCpyOpt::performCallSlotOptzn(Ins<br class="">   // FIXME: MD_tbaa_struct and MD_mem_parallel_loop_access should also be<br class="">   // handled here, but combineMetadata doesn't support them yet<br class="">   unsigned KnownIDs[] = {<br class="">+    LLVMContext::MD_dbg,<br class="">     LLVMContext::MD_tbaa,<br class="">     LLVMContext::MD_alias_scope,<br class="">     LLVMContext::MD_noalias,<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Scalar_MergedLoadStoreMotion.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=y5vdyH-S9iOgEU9D0l36UeyVwqjPvibDxNcp8xdjLHI&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -293,7 +293,7 @@ void MergedLoadStoreMotion::hoistInstruc<br class=""><br class="">   // Intersect optional metadata.<br class="">   HoistCand->intersectOptionalDataWith(ElseInst);<br class="">-  HoistCand->dropUnknownMetadata();<br class="">+  HoistCand->dropUnknownMetadata(LLVMContext::MD_dbg);<br class=""><br class="">   // Prepend point for instruction insert<br class="">   Instruction *HoistPt = BB->getTerminator();<br class="">@@ -472,7 +472,7 @@ bool MergedLoadStoreMotion::sinkStore(Ba<br class="">     BasicBlock::iterator InsertPt = BB->getFirstInsertionPt();<br class="">     // Intersect optional metadata.<br class="">     S0->intersectOptionalDataWith(S1);<br class="">-    S0->dropUnknownMetadata();<br class="">+    S0->dropUnknownMetadata(LLVMContext::MD_dbg);<br class=""><br class="">     // Create the new store to be inserted at the join point.<br class="">     StoreInst *SNew = (StoreInst *)(S0->clone());<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Utils_SimplifyCFG.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=MlMYlre4jafLQGTOCiFDPPtUkr24e5VUAXH_INIvEp8&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/Utils/SimplifyCFG.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -1093,6 +1093,7 @@ static bool HoistThenElseCodeToIf(Branch<br class="">       I2->replaceAllUsesWith(I1);<br class="">     I1->intersectOptionalDataWith(I2);<br class="">     unsigned KnownIDs[] = {<br class="">+      LLVMContext::MD_dbg,<br class="">       LLVMContext::MD_tbaa,<br class="">       LLVMContext::MD_range,<br class="">       LLVMContext::MD_fpmath,<br class=""><br class="">Modified: llvm/trunk/lib/Transforms/Vectorize/BBVectorize.cpp<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_Transforms_Vectorize_BBVectorize.cpp-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=xBoZzt_2qdEo5pD0DVxVM874Kns14XA0Tcc_zV1Qyt4&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/BBVectorize.cpp?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/lib/Transforms/Vectorize/BBVectorize.cpp (original)<br class="">+++ llvm/trunk/lib/Transforms/Vectorize/BBVectorize.cpp Thu Aug 20 13:24:02 2015<br class="">@@ -3118,6 +3118,7 @@ namespace {<br class="">         K->mutateType(getVecTypeForPair(L->getType(), H->getType()));<br class=""><br class="">       unsigned KnownIDs[] = {<br class="">+        LLVMContext::MD_dbg,<br class="">         LLVMContext::MD_tbaa,<br class="">         LLVMContext::MD_alias_scope,<br class="">         LLVMContext::MD_noalias,<br class=""><br class="">Modified: llvm/trunk/test/Transforms/SimplifyCFG/basictest.ll<br class="">URL:<span class=""> </span><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_test_Transforms_SimplifyCFG_basictest.ll-3Frev-3D245589-26r1-3D245588-26r2-3D245589-26view-3Ddiff&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=OoNwP-iPrNBLLZtCDo4QBCA-2NZq8A0UX9r8ARqy8Vc&e=" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyCFG/basictest.ll?rev=245589&r1=245588&r2=245589&view=diff</a><br class="">==============================================================================<br class="">--- llvm/trunk/test/Transforms/SimplifyCFG/basictest.ll (original)<br class="">+++ llvm/trunk/test/Transforms/SimplifyCFG/basictest.ll Thu Aug 20 13:24:02 2015<br class="">@@ -50,7 +50,7 @@ define i8 @test6f() {<br class=""> ; CHECK: alloca i8, align 1<br class=""> ; CHECK-NEXT: call i8 @test6g<br class=""> ; CHECK-NEXT: icmp eq i8 %tmp, 0<br class="">-; CHECK-NEXT: load i8, i8* %r, align 1{{$}}<br class="">+; CHECK-NEXT: load i8, i8* %r, align 1, !dbg !{{[0-9]+$}}<br class=""><br class=""> bb0:<br class="">   %r = alloca i8, align 1<br class="">@@ -58,7 +58,7 @@ bb0:<br class="">   %tmp1 = icmp eq i8 %tmp, 0<br class="">   br i1 %tmp1, label %bb2, label %bb1<br class=""> bb1:<br class="">-  %tmp3 = load i8, i8* %r, align 1, !range !2, !tbaa !1<br class="">+  %tmp3 = load i8, i8* %r, align 1, !range !2, !tbaa !1, !dbg !5<br class="">   %tmp4 = icmp eq i8 %tmp3, 1<br class="">   br i1 %tmp4, label %bb2, label %bb3<br class=""> bb2:<br class="">@@ -69,6 +69,16 @@ bb3:<br class=""> }<br class=""> declare i8 @test6g(i8*)<br class=""><br class="">+!<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.dbg.cu&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=_YwAfZKuMj-3b7_5-qtsYdjH6-LxIYe-tYY9ywlPNT0&e=" rel="noreferrer" target="_blank" class="">llvm.dbg.cu</a><span class=""> </span>= !{!3}<br class="">+!llvm.module.flags = !{!8, !9}<br class="">+<br class=""> !0 = !{!1, !1, i64 0}<br class=""> !1 = !{!"foo"}<br class=""> !2 = !{i8 0, i8 2}<br class="">+!3 = distinct !DICompileUnit(language: DW_LANG_C99, file: !7, producer: "clang", isOptimized: false, runtimeVersion: 0, emissionKind: 1, enums: !4, subprograms: !4, globals: !4)<br class="">+!4 = !{}<br class="">+!5 = !DILocation(line: 23, scope: !6)<br class="">+!6 = !DISubprogram(name: "foo", scope: !3, file: !7, line: 1, type: !DISubroutineType(types: !4), isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, variables: !4)<br class="">+!7 = !DIFile(filename: "foo.c", directory: "/")<br class="">+!8 = !{i32 2, !"Dwarf Version", i32 2}<br class="">+!9 = !{i32 2, !"Debug Info Version", i32 3}<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class=""><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=O5hdC-rwRMOUzsKRZ7x6owaIS6MAd-YtKndGVMJjajI&s=B81xk9guP5NgjYvMbPIeEnddffTrqv_-51j1Eu4RO0c&e=" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class=""></blockquote></div><br class=""></div></div></div></blockquote></div></div>_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a><br class=""><a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Dcommits&d=BQMFaQ&c=eEvniauFctOgLOKGJOplqw&r=cTx6f1tAfqPeajYunFWp7_8ot79RnHyNteqzig4fXmA&m=JtCJPwcGJ3rTAk5LXgRXmZ11Iy9NPKjvbHJI66W-7Bk&s=wLLzXmk9K2UerI-0T9hlbiy_lED6-WOSkiZW-jfLvpA&e=" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></blockquote></div></div></div></blockquote></div></div></div><br class=""></div></blockquote></div><br class=""></div>
</blockquote></div>
</div></blockquote></div><br class=""></div></body></html>