[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/AsmPrinter/ lib/Target/CellSPU/AsmPrinter/ lib/Target/CppBackend/ lib/Target/IA64/AsmPrinter/ lib/Target/MSP430/ lib/Target/Mips/AsmPrinter/ lib/Target/PowerPC/AsmPrinter/ lib/Target/Sparc/AsmPrinter/ lib/Target/SystemZ/AsmPrinter/ lib/Target/X86/AsmPrinter/ lib/Target/XCore/ lib/Tr...

Chris Lattner clattner at apple.com
Sun Jul 19 22:34:41 PDT 2009


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.


> +++ 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?

Thanks for doing this Bill!

-Chris



More information about the llvm-commits mailing list