<div dir="ltr">I don't think so. My vague feeling is that only the caller of the CloneFunction function has all the context required to know if and how the subprogram should change (that includes not only names but e.g. parameters), so the caller should do that itself and add the new metadata to the value map.<div><br></div><div>Peter</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 15, 2016 at 10:56 AM, Sergei Larin <span dir="ltr"><<a href="mailto:slarin@codeaurora.org" target="_blank">slarin@codeaurora.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Will that take care of creating a properly named debug scope?<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">(“Properly” in this context == named after cloned destination…)<u></u><u></u></span></p><span class=""><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Consolas;color:#1f497d">---<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:10.5pt;font-family:"Calibri",sans-serif;color:#1f497d">Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation</span><span style="font-size:10.5pt;font-family:Consolas;color:#1f497d"><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p></span><div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt"><div><div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Peter Collingbourne [mailto:<a href="mailto:peter@pcc.me.uk" target="_blank">peter@pcc.me.uk</a>] <br><b>Sent:</b> Friday, April 15, 2016 12:03 PM<br><b>To:</b> Sergei Larin <<a href="mailto:slarin@codeaurora.org" target="_blank">slarin@codeaurora.org</a>>; <a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a><br><b>Cc:</b> Teresa Johnson <<a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a>>; llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br><b>Subject:</b> Re: Can DISubprogram be renamed?<u></u><u></u></span></p></div></div><div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">I'd actually like to remove that functionality, as it is unused. See <a href="http://reviews.llvm.org/D18628" target="_blank">http://reviews.llvm.org/D18628</a><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Adrian's change r266446 I think obsoletes that patch or at least makes it a lot simpler.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Peter<u></u><u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Fri, Apr 15, 2016 at 9:50 AM, Sergei Larin <<a href="mailto:slarin@codeaurora.org" target="_blank">slarin@codeaurora.org</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Peter,<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">  I am afraid I am missing a big picture with debug info cloning.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">  Certainly after your patch (and possibly in some cases earlier):<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">    Cloning: Reduce complexity of debug info cloning and fix correctness issue.<u></u><u></u></p><p class="MsoNormal">    <u></u><u></u></p><p class="MsoNormal">    Commit r260791 contained an error in that it would introduce a cross-module<u></u><u></u></p><p class="MsoNormal">    reference in the old module. It also introduced O(N^2) complexity in the<u></u><u></u></p><p class="MsoNormal">    module cloner by requiring the entire module to be visited for each function.<u></u><u></u></p><p class="MsoNormal">    Fix both of these problems by avoiding use of the CloneDebugInfoMetadata<u></u><u></u></p><p class="MsoNormal">    function (which is only designed to do intra-module cloning) and cloning<u></u><u></u></p><p class="MsoNormal">    function-attached metadata in the same way that we clone all other metadata.<u></u><u></u></p><p class="MsoNormal">    <u></u><u></u></p><p class="MsoNormal">    Differential Revision: <a href="http://reviews.llvm.org/D18583" target="_blank">http://reviews.llvm.org/D18583</a><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">During CloneFunctionInto we seem to create a new DISubprogram which still carries the name of the _<i>original</i>_ function… which creates certain confusion with debugging scope.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Was it designed that way, or am I missing something here… <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Thanks a lot.<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal">Sergei<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><span style="font-size:10.5pt;font-family:Consolas">---</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:10.5pt">Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation</span><u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p></div></div></blockquote></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">-- <u></u><u></u></p><div><div><p class="MsoNormal">-- <u></u><u></u></p><div><p class="MsoNormal">Peter<u></u><u></u></p></div></div></div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</div>