[llvm-commits] [llvm] r55973 - in /llvm/trunk: include/llvm/Target/TargetAsmInfo.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp lib/Target/ARM/ARMTargetAsmInfo.cpp lib/Target/PowerPC/PPCTargetAsmInfo.cpp lib/Target/TargetAsmInfo.cpp lib/Target/X86/X86Ta

Dale Johannesen dalej at apple.com
Mon Sep 22 10:13:42 PDT 2008


On Sep 21, 2008, at 12:00 PMPDT, Chris Lattner wrote:

> On Sep 9, 2008, at 11:19 AM, Dale Johannesen wrote:
>> On Sep 9, 2008, at 1:02 AMPDT, Anton Korobeynikov wrote:
>>> Hi, Dale
>>>
>>>> the magic 'l' prefix for symbols on Darwin which are
>>>> to be passed through the assembler, then removed at
>>>> linktime (previously all references to this had been
>>>> hidden in the ObjC FE code, oh well).
>>> Sorry for bothering you again, but changing semantics of llvm.used  
>>> in
>>> such target- and language- specific way is a bit... uhm...
>>> questionable.
>>
>> The underlying problem is that two different characteristics are
>> involved:  "the compiler must not delete this symbol", and "the
>> compiler must emit something special to affect assembly- or link-  
>> time
>> behavior".   Currently both these key off llvm.used, which is not so
>> good because they are not the same thing and do not always apply to
>> the same symbols.  I have been patching the existing mechanism to  
>> make
>> it work, but I could be persuaded that a new mechanism is better.
>
> Ok, it sounds like overloading llvm.used like this is the problem.
> Maybe the issues is that we need two different "used" lists? One that
> is "must be in the assembler output" and "one that must be in the
> linker output".  The current used list would be the later, and ObjC
> could use the former?


Two lists would probably be a better design, although the semantics you
give here are not right.  At the moment, everything works in this  
area, so
it isn't urgent.




More information about the llvm-commits mailing list