[llvm-dev] Can DISubprogram be renamed?

Peter Collingbourne via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 15 12:16:01 PDT 2016


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.

Peter

On Fri, Apr 15, 2016 at 10:56 AM, Sergei Larin <slarin at codeaurora.org>
wrote:

> Will that take care of creating a properly named debug scope?
>
>
>
> (“Properly” in this context == named after cloned destination…)
>
>
>
> ---
>
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by The Linux Foundation
>
>
>
> *From:* Peter Collingbourne [mailto:peter at pcc.me.uk]
> *Sent:* Friday, April 15, 2016 12:03 PM
> *To:* Sergei Larin <slarin at codeaurora.org>; aprantl at apple.com
> *Cc:* Teresa Johnson <tejohnson at google.com>; llvm-dev <
> llvm-dev at lists.llvm.org>
> *Subject:* Re: Can DISubprogram be renamed?
>
>
>
> I'd actually like to remove that functionality, as it is unused. See
> http://reviews.llvm.org/D18628
>
>
>
> Adrian's change r266446 I think obsoletes that patch or at least makes it
> a lot simpler.
>
>
>
> Peter
>
>
>
> On Fri, Apr 15, 2016 at 9:50 AM, Sergei Larin <slarin at codeaurora.org>
> wrote:
>
>
>
> Peter,
>
>
>
>   I am afraid I am missing a big picture with debug info cloning.
>
>
>
>   Certainly after your patch (and possibly in some cases earlier):
>
>
>
>     Cloning: Reduce complexity of debug info cloning and fix correctness
> issue.
>
>
>
>     Commit r260791 contained an error in that it would introduce a
> cross-module
>
>     reference in the old module. It also introduced O(N^2) complexity in
> the
>
>     module cloner by requiring the entire module to be visited for each
> function.
>
>     Fix both of these problems by avoiding use of the
> CloneDebugInfoMetadata
>
>     function (which is only designed to do intra-module cloning) and
> cloning
>
>     function-attached metadata in the same way that we clone all other
> metadata.
>
>
>
>     Differential Revision: http://reviews.llvm.org/D18583
>
>
>
> During CloneFunctionInto we seem to create a new DISubprogram which still
> carries the name of the _*original*_ function… which creates certain
> confusion with debugging scope.
>
>
>
> Was it designed that way, or am I missing something here…
>
>
>
> Thanks a lot.
>
>
>
> Sergei
>
>
>
>
>
>
>
> ---
>
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by The Linux Foundation
>
>
>
>
>
>
>
> --
>
> --
>
> Peter
>



-- 
-- 
Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160415/57a39181/attachment.html>


More information about the llvm-dev mailing list