<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Oct 7, 2016 at 8:30 AM Dehao Chen via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: dehao<br class="gmail_msg"><br>Date: Fri Oct  7 10:21:31 2016<br class="gmail_msg"><br>New Revision: 283565<br class="gmail_msg"><br><br class="gmail_msg"><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=283565&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=283565&view=rev</a><br class="gmail_msg"><br>Log:<br class="gmail_msg"><br>Invoke add-discriminator at -g0 -fsample-profile<br class="gmail_msg"><br><br class="gmail_msg"><br>Summary: -fsample-profile needs discriminator, which will not be added if built with -g0. This patch makes sure the discriminator is added for sample-profile at -g0. A followup patch will be send out to update clang tests.<br class="gmail_msg"><br><br class="gmail_msg"><br>Reviewers: davidxl, dblaikie, echristo, dnovillo<br class="gmail_msg"><br><br class="gmail_msg"><br>Subscribers: mehdi_amini, probinson, llvm-commits<br class="gmail_msg"><br><br class="gmail_msg"><br>Differential Revision: <a href="https://reviews.llvm.org/D25132" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D25132</a><br class="gmail_msg"><br><br class="gmail_msg"><br>Modified:<br class="gmail_msg"><br>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp<br class="gmail_msg"><br>    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br class="gmail_msg"><br>    llvm/trunk/lib/MC/MCDwarf.cpp<br class="gmail_msg"><br>    llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp<br class="gmail_msg"><br><br class="gmail_msg"><br>Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp<br class="gmail_msg"><br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=283565&r1=283564&r2=283565&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=283565&r1=283564&r2=283565&view=diff</a><br class="gmail_msg"><br>==============================================================================<br class="gmail_msg"><br>--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (original)<br class="gmail_msg"><br>+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp Fri Oct  7 10:21:31 2016<br class="gmail_msg"><br>@@ -419,7 +419,7 @@ DIE *DwarfCompileUnit::constructInlinedS<br class="gmail_msg"><br>   addUInt(*ScopeDIE, dwarf::DW_AT_call_file, None,<br class="gmail_msg"><br>           getOrCreateSourceID(IA->getFilename(), IA->getDirectory()));<br class="gmail_msg"><br>   addUInt(*ScopeDIE, dwarf::DW_AT_call_line, None, IA->getLine());<br class="gmail_msg"><br>-  if (IA->getDiscriminator())<br class="gmail_msg"><br>+  if (IA->getDiscriminator() && DD->getDwarfVersion() >= 4)<br class="gmail_msg"></blockquote><div><br></div><div>Does this have test coverage? (if I remove this check for DwarfVersion, will a test fail)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>     addUInt(*ScopeDIE, dwarf::DW_AT_GNU_discriminator, None,<br class="gmail_msg"><br>             IA->getDiscriminator());<br class="gmail_msg"><br><br class="gmail_msg"><br><br class="gmail_msg"><br>Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br class="gmail_msg"><br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=283565&r1=283564&r2=283565&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=283565&r1=283564&r2=283565&view=diff</a><br class="gmail_msg"><br>==============================================================================<br class="gmail_msg"><br>--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)<br class="gmail_msg"><br>+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Oct  7 10:21:31 2016<br class="gmail_msg"><br>@@ -1190,7 +1190,8 @@ void DwarfDebug::recordSourceLine(unsign<br class="gmail_msg"><br>     Fn = Scope->getFilename();<br class="gmail_msg"><br>     Dir = Scope->getDirectory();<br class="gmail_msg"><br>     if (auto *LBF = dyn_cast<DILexicalBlockFile>(Scope))<br class="gmail_msg"><br>-      Discriminator = LBF->getDiscriminator();<br class="gmail_msg"><br>+      if (DwarfVersion >= 4)<br class="gmail_msg"><br>+        Discriminator = LBF->getDiscriminator();<br class="gmail_msg"><br><br class="gmail_msg"><br>     unsigned CUID = Asm->OutStreamer->getContext().getDwarfCompileUnitID();<br class="gmail_msg"><br>     Src = static_cast<DwarfCompileUnit &>(*InfoHolder.getUnits()[CUID])<br class="gmail_msg"><br><br class="gmail_msg"><br>Modified: llvm/trunk/lib/MC/MCDwarf.cpp<br class="gmail_msg"><br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=283565&r1=283564&r2=283565&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=283565&r1=283564&r2=283565&view=diff</a><br class="gmail_msg"><br>==============================================================================<br class="gmail_msg"><br>--- llvm/trunk/lib/MC/MCDwarf.cpp (original)<br class="gmail_msg"><br>+++ llvm/trunk/lib/MC/MCDwarf.cpp Fri Oct  7 10:21:31 2016<br class="gmail_msg"><br>@@ -122,7 +122,8 @@ EmitDwarfLineTable(MCObjectStreamer *MCO<br class="gmail_msg"><br>       MCOS->EmitIntValue(dwarf::DW_LNS_set_column, 1);<br class="gmail_msg"><br>       MCOS->EmitULEB128IntValue(Column);<br class="gmail_msg"><br>     }<br class="gmail_msg"><br>-    if (Discriminator != LineEntry.getDiscriminator()) {<br class="gmail_msg"><br>+    if (Discriminator != LineEntry.getDiscriminator() &&<br class="gmail_msg"><br>+        MCOS->getContext().getDwarfVersion() >= 4) {<br class="gmail_msg"><br>       Discriminator = LineEntry.getDiscriminator();<br class="gmail_msg"><br>       unsigned Size = getULEB128Size(Discriminator);<br class="gmail_msg"><br>       MCOS->EmitIntValue(dwarf::DW_LNS_extended_op, 1);<br class="gmail_msg"><br><br class="gmail_msg"><br>Modified: llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp<br class="gmail_msg"><br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp?rev=283565&r1=283564&r2=283565&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp?rev=283565&r1=283564&r2=283565&view=diff</a><br class="gmail_msg"><br>==============================================================================<br class="gmail_msg"><br>--- llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp (original)<br class="gmail_msg"><br>+++ llvm/trunk/lib/Transforms/Utils/AddDiscriminators.cpp Fri Oct  7 10:21:31 2016<br class="gmail_msg"><br>@@ -159,10 +159,7 @@ static bool addDiscriminators(Function &<br class="gmail_msg"><br>   // If the function has debug information, but the user has disabled<br class="gmail_msg"><br>   // discriminators, do nothing.<br class="gmail_msg"><br>   // Simlarly, if the function has no debug info, do nothing.<br class="gmail_msg"><br>-  // Finally, if this module is built with dwarf versions earlier than 4,<br class="gmail_msg"><br>-  // do nothing (discriminator support is a DWARF 4 feature).<br class="gmail_msg"><br>-  if (NoDiscriminators || !F.getSubprogram() ||<br class="gmail_msg"><br>-      F.getParent()->getDwarfVersion() < 4)<br class="gmail_msg"><br>+  if (NoDiscriminators || !F.getSubprogram())<br class="gmail_msg"><br>     return false;<br class="gmail_msg"><br><br class="gmail_msg"><br>   bool Changed = false;<br class="gmail_msg"><br><br class="gmail_msg"><br><br class="gmail_msg"><br>_______________________________________________<br class="gmail_msg"><br>llvm-commits mailing list<br class="gmail_msg"><br><a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg"><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg"><br></blockquote></div></div>