[PATCH] Use comdats to avoid double initialization of weak data

Reid Kleckner rnk at google.com
Fri May 16 14:48:01 PDT 2014


Hi rsmith,

Initializers of global data that can appear multiple TUs (static data
members of class templates or __declspec(selectany) data) are now in a
comdat group keyed on the global variable being initialized.  On
non-Windows platforms, this is a code size and startup time
optimization.  On Windows, this is necessary for ABI compatibility with
MSVC.

Fixes PR16959.

http://reviews.llvm.org/D3811

Files:
  lib/CodeGen/CGDeclCXX.cpp
  lib/CodeGen/CodeGenModule.cpp
  lib/CodeGen/CodeGenModule.h
  lib/CodeGen/MicrosoftCXXABI.cpp
  test/CodeGenCXX/apple-kext.cpp
  test/CodeGenCXX/init-priority-attr.cpp
  test/CodeGenCXX/microsoft-abi-static-initializers.cpp
  test/CodeGenCXX/static-member-variable-explicit-specialization.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D3811.9497.patch
Type: text/x-patch
Size: 14578 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140516/fd6fff53/attachment.bin>


More information about the cfe-commits mailing list