<div dir="ltr">We had a couple of suggestions in the other thread<br><br><span style="color:rgb(117,117,117)"><span class="inbox-inbox-Apple-converted-space"> </span>-femit-</span><span class="inbox-inbox-lG" style="background-color:rgba(251,246,167,0.498039);outline:transparent dashed 1px;color:rgb(117,117,117)">debug</span><span style="color:rgb(117,117,117)">-for-profiling (Greg's)<br></span>-fprof-debug (mine)<br><br>(+ a few debug folks and folks from the other thread, in case they've got ideas)<br><br>Any others people want to float/advocate for?<br><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 29, 2016 at 11:39 AM Dehao Chen <<a href="mailto:dehao@google.com">dehao@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Any recommendation on the flag names?<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thanks,</div><div class="gmail_msg">Dehao</div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg">On Tue, Nov 29, 2016 at 11:33 AM, David Blaikie via llvm-commits <span dir="ltr" class="gmail_msg"><<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">That doesn't seem like the best/most descriptive/most forwards-compatible name for the flag.<br class="gmail_msg"><br class="gmail_msg">This seems like it's specifically about providing more information for profiling, by naming it in such a way that describes that use case it'll hopefully be easier for users to know when to use it and for us to know what should be triggered by that flag and what shouldn't.<br class="gmail_msg"><br class="gmail_msg">- Dave</div><div class="m_-4835666686028050694HOEnZb gmail_msg"><div class="m_-4835666686028050694h5 gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"><div dir="ltr" class="gmail_msg">On Tue, Nov 29, 2016 at 11:21 AM Dehao Chen via Phabricator <<a href="mailto:reviews@reviews.llvm.org" class="gmail_msg" target="_blank">reviews@reviews.llvm.org</a>> wrote:<br class="gmail_msg"></div><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">danielcdh updated this revision to Diff 79609.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
danielcdh added a comment.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Add -femit-accurate-debug-info flag to guard the change.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<a href="https://reviews.llvm.org/D25435" rel="noreferrer" class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg" target="_blank">https://reviews.llvm.org/D25435</a><br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Files:<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  include/clang/Driver/Options.td<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  include/clang/Frontend/CodeGenOptions.def<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  lib/CodeGen/CGDebugInfo.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  lib/Driver/Tools.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  lib/Frontend/CompilerInvocation.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
  test/Driver/clang_f_opts.c<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: test/Driver/clang_f_opts.c<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- test/Driver/clang_f_opts.c<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ test/Driver/clang_f_opts.c<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -469,3 +469,8 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 // CHECK-WCHAR2: -fshort-wchar<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 // CHECK-WCHAR2-NOT: -fno-short-wchar<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 // DELIMITERS: {{^ *"}}<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+// RUN: %clang -### -S -fno-emit-accurate-debug-info -femit-accurate-debug-info %s 2>&1 | FileCheck -check-prefix=CHECK-EMIT-ACCURATE-DEBUG-INFO %s<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+// RUN: %clang -### -S -femit-accurate-debug-info -fno-emit-accurate-debug-info %s 2>&1 | FileCheck -check-prefix=CHECK-NO-EMIT-ACCURATE-DEBUG-INFO %s<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+// CHECK-EMIT-ACCURATE-DEBUG-INFO: -femit-accurate-debug-info<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+// CHECK-NO-EMIT-ACCURATE-DEBUG-INFO-NOT: -femit-accurate-debug-info<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: lib/Frontend/CompilerInvocation.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- lib/Frontend/CompilerInvocation.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ lib/Frontend/CompilerInvocation.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -538,6 +538,8 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   Opts.DisableIntegratedAS = Args.hasArg(OPT_fno_integrated_as);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   Opts.Autolink = !Args.hasArg(OPT_fno_autolink);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   Opts.SampleProfileFile = Args.getLastArgValue(OPT_fprofile_sample_use_EQ);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+  Opts.EmitAccurateDebugInfo = Args.hasFlag(<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+      OPT_femit_accurate_debug_info, OPT_fno_emit_accurate_debug_info, false);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   setPGOInstrumentor(Opts, Args, Diags);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   Opts.InstrProfileOutput =<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: lib/Driver/Tools.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- lib/Driver/Tools.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ lib/Driver/Tools.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -5508,6 +5508,10 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
       A->render(Args, CmdArgs);<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   }<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+  if (Args.hasFlag(options::OPT_femit_accurate_debug_info,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+                   options::OPT_fno_emit_accurate_debug_info, false))<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+    CmdArgs.push_back("-femit-accurate-debug-info");<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   // -fbuiltin is default unless -mkernel is used.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   bool UseBuiltins =<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
       Args.hasFlag(options::OPT_fbuiltin, options::OPT_fno_builtin,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: lib/CodeGen/CGDebugInfo.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- lib/CodeGen/CGDebugInfo.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ lib/CodeGen/CGDebugInfo.cpp<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -2739,9 +2739,11 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   }<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   // No need to replicate the linkage name if it isn't different from the<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   // subprogram name, no need to have it at all unless coverage is enabled or<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
-  // debug is set to more than just line tables.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+  // debug is set to more than just line tables or accurate debug info is<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+  // needed.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
   if (LinkageName == Name || (!CGM.getCodeGenOpts().EmitGcovArcs &&<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
                               !CGM.getCodeGenOpts().EmitGcovNotes &&<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+                              !CGM.getCodeGenOpts().EmitAccurateDebugInfo &&<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
                               DebugKind <= codegenoptions::DebugLineTablesOnly))<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
     LinkageName = StringRef();<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: include/clang/Frontend/CodeGenOptions.def<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- include/clang/Frontend/CodeGenOptions.def<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ include/clang/Frontend/CodeGenOptions.def<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -256,6 +256,9 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 /// Whether copy relocations support is available when building as PIE.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 CODEGENOPT(PIECopyRelocations, 1, 0)<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+/// Whether emit more accurate debug info for sample pgo profile collection.<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+CODEGENOPT(EmitAccurateDebugInfo, 1, 0)<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 #undef CODEGENOPT<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 #undef ENUM_CODEGENOPT<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 #undef VALUE_CODEGENOPT<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
Index: include/clang/Driver/Options.td<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
===================================================================<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
--- include/clang/Driver/Options.td<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+++ include/clang/Driver/Options.td<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
@@ -509,6 +509,12 @@<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
     HelpText<"Enable sample-based profile guided optimizations">;<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 def fauto_profile_EQ : Joined<["-"], "fauto-profile=">,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
     Alias<fprofile_sample_use_EQ>;<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+def femit_accurate_debug_info : Flag<["-"], "femit-accurate-debug-info">,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+    Group<f_Group>, Flags<[CC1Option]>,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+    HelpText<"Emit accurate debug info to make sample profile more accurate.">;<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+def fno_emit_accurate_debug_info : Flag<["-"], "fno-emit-accurate-debug-info">,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+    Group<f_Group>, Flags<[DriverOption]>,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
+    HelpText<"Do not emit accurate debug info.">;<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
 def fprofile_instr_generate : Flag<["-"], "fprofile-instr-generate">,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
     Group<f_Group>, Flags<[DriverOption]>,<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
     HelpText<"Generate instrumented code to collect execution counts into default.profraw file (overriden by '=' form of option or LLVM_PROFILE_FILE env var)">;<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
<br class="m_-4835666686028050694m_-5406532107271656616gmail_msg gmail_msg">
</blockquote></div>
</div></div><br class="gmail_msg"></blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<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 class="gmail_msg"></blockquote></div><br class="gmail_msg"></div>
</blockquote></div></div>