[PATCH] D18706: [DWARF] Force a linkage_name on an inlined subprogram's abstract origin

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 13 13:20:40 PDT 2016


On Wed, Apr 13, 2016 at 1:10 PM, Paul Robinson via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> probinson added a comment.
>
> In http://reviews.llvm.org/D18706#400222, @dblaikie wrote:
>
> > Also - depending on how far you want to go, you could probably skip the
> mangled name for abstract subprograms that have a concrete definition (it'd
> mean having to search through the DWARF to find the concrete subprogram,
> then looking at its high/low pc to find the symbol in the symbol table with
> the mangled name there)
>
>
> If the concrete out-of-line instance gets LTO'd away, that won't work.
>

Sorry, I meant actually checking/making this choice here, in LLVM's codegen
- at that point we know if the out of line instance exists or doesn't.

Ah, linker (I see your follow up mail). Fair enough. Good to know - thanks!


>
>
> ================
> Comment at: lib/CodeGen/AsmPrinter/DwarfDebug.cpp:108-112
> @@ -107,8 +107,7 @@
>
> -static cl::opt<DefaultOnOff>
> -DwarfLinkageNames("dwarf-linkage-names", cl::Hidden,
> -                  cl::desc("Emit DWARF linkage-name attributes."),
> -                  cl::values(clEnumVal(Default, "Default for platform"),
> -                             clEnumVal(Enable, "Enabled"),
> -                             clEnumVal(Disable, "Disabled"),
> clEnumValEnd),
> -                  cl::init(Default));
> +enum LinkageNameOption {
> +  DefaultLinkageNames,
> +  AllLinkageNames,
> +  AbstractLinkageNames
> +};
> +static cl::opt<LinkageNameOption>
> ----------------
> dblaikie wrote:
> > Why did this need to become a 3 state when it was a boolean before?
> (when it's still only about 2 states, I think - before it was
> all-or-nothing, and now it's all-or-abstract)
> This is about the command-line option, which used to be the 3-state
> DefaultOnOff and is now this new enum because the choices aren't really On
> and Off anymore.


Seems like that's just a matter of how you name the flag, but no big deal
in any case. Carry on.


>   The DwarfDebug flag is still a bool.
>
>
> http://reviews.llvm.org/D18706
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160413/973cfbf0/attachment.html>


More information about the llvm-commits mailing list