[llvm-commits] [llvm] r76385 - in /llvm/trunk: docs/ include/llvm-c/ include/llvm/ include/llvm/Support/ lib/AsmParser/ lib/Bitcode/Reader/ lib/Bitcode/Writer/ lib/CodeGen/ lib/Linker/ lib/Target/ lib/Target/ARM/AsmPrinter/ lib/Target/Alpha/AsmPr

Bill Wendling isanbard at gmail.com
Mon Jul 20 11:22:23 PDT 2009


On Sun, Jul 19, 2009 at 10:34 PM, Chris Lattner<clattner at apple.com> wrote:
>
> On Jul 19, 2009, at 6:03 PM, Bill Wendling wrote:
>
>> Author: void
>> Date: Sun Jul 19 20:03:30 2009
>> New Revision: 76385
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=76385&view=rev
>> Log:
>> Add plumbing for the `linker_private' linkage type. This type is
>> meant for
>> "private" symbols which the assember shouldn't strip, but which the
>> linker may
>> remove after evaluation. This is mostly useful for Objective-C
>> metadata.
>>
>> This is plumbing, so we don't have a use of it yet. More to come, etc.
>
> Thanks for implementing this Bill.
>
>> +++ llvm/trunk/include/llvm-c/Core.h Sun Jul 19 20:03:30 2009
>> @@ -141,6 +141,7 @@
>>   LLVMInternalLinkage,    /**< Rename collisions when linking (static
>>                                functions) */
>>   LLVMPrivateLinkage,     /**< Like Internal, but omit from symbol
>> table */
>> +  LLVMLinkerPrivateLinkage, /**< Like Private, but linker removes. */
>>   LLVMDLLImportLinkage,   /**< Function to be imported from DLL */
>>   LLVMDLLExportLinkage,   /**< Function to be accessible from DLL */
>>   LLVMExternalWeakLinkage,/**< ExternalWeak linkage description */
>
> This changes the C ABI, which is not allowed, please add this to the
> end of the list.  liblto may also need to be updated to handle this.
>
Oops...Okay.

>> +++ llvm/trunk/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp Sun Jul
>> 19 20:03:30 2009
>> @@ -93,12 +93,15 @@
>>       void Init(const std::string &GV, Mangler *Mang) {
>>         // Already initialized.
>>         if (!Stub.empty()) return;
>> -        Stub = Mang->makeNameProper(GV+"$stub", true);
>> -        LazyPtr = Mang->makeNameProper(GV+"$lazy_ptr", true);
>> -        SLP = Mang->makeNameProper(GV+"$slp", true);
>> -        SCV = Mang->makeNameProper(GV+"$scv", true);
>> +        Stub = Mang->makeNameProper(GV + "$stub",
>> +                                    Mangler::PrivatePrefixTy);
>
> How about dropping "Ty" from the enum names?
>
I'm not good at naming these things, but unfortunately there are
already variables in the Mangler class named "PrivatePrefix" etc. I'll
try to think of something better...

-bw




More information about the llvm-commits mailing list