[llvm-dev] What should IRObjectFile expose?
Mehdi Amini via llvm-dev
llvm-dev at lists.llvm.org
Tue Apr 5 19:38:57 PDT 2016
> On Apr 5, 2016, at 7:03 PM, Rafael Espíndola <rafael.espindola at gmail.com> wrote:
>
> On 4 April 2016 at 23:39, Peter Collingbourne <peter at pcc.me.uk <mailto:peter at pcc.me.uk>> wrote:
>> Hi Rafael,
>>
>> There's a source file in Chromium that does something like this:
>>
>> target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
>> target triple = "x86_64-unknown-linux-gnu"
>>
>> module asm ".text"
>> module asm "foo: ret"
>>
>> declare void @foo()
>>
>> define void @_start() {
>> call void @foo()
>> ret void
>> }
>>
>> Currently the llvm-nm output for that looks like this:
>>
>> ---------------- T _start
>> U foo
>> ---------------- t foo
>>
>> That second entry is a bug, right? I just wanted to confirm before I go
>> ahead and fix it, since the fix seems like it would be rather involved.
>
> It depends on how much you want it to do I guess.
>
> Given bugs people find when trying to use LTO I am pretty sure that
> parsing global assembly to detect symbols is necessary. For another
> recent report see https://llvm.org/bugs/show_bug.cgi?id=26745 <https://llvm.org/bugs/show_bug.cgi?id=26745>.
>
> Normally having a U and T just looks silly in llvm-nm, but as you
> noticed that breaks down when the definition is not marked global.
>
> (very?) long term my idea is to add a proper symbol table to the
> bitcode file.
I am glad to read this as I have the exact same (vague) plan!
—
Mehdi
> The idea is that it would have the final word on what
> symbols are defined in a given .bc. In particular:
>
> * A @foo would show up as "foo" or "_foo" or "_foo at some_windows_thing"
> in the symbol table.
> * There would be entries for symbols declared as inline assembly.
>
> In that universe IRObjectFile would be a lot more like any other
> object file implementation and not depend on MC :-)
>
> The flip side is that llvm-as would be doing mangling and either we
> would require asm symbol declarations in .ll or it would also parse
> assembly.
>
> Cheers,
> Rafael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160405/dfde2d29/attachment.html>
More information about the llvm-dev
mailing list