I don't think we'd want to keep marking C++ entities as weak/linkonce/etc. in the MSVC ABI if we are splitting the COMDATness out. I guess we still sorta need it to talk about the discardability of a symbol...
On Tue, Jan 6, 2015 at 4:39 PM, Rafael Espíndola <[email protected] > wrote: > This is the new version of the patch now that the llvm syntax change is in. > > The llvm IR until recently had no support for comdats. This was a > problem when targeting C++ on ELF/COFF as just using weak linkage > would cause quite a bit of dead bits to remain on the executable > (unless -ffunction-sections, -fdata-sections and --gc-sections were > used). > > To fix the problem, llvm's codegen will just assume that any weak or > linkonce that is not in an explicit comdat should be output in one > with the same name as the global. > > This unfortunately breaks cases like pr19848 where a weak symbol is > not expected to be part of any comdat. > > Now that we have explicit comdats in the IR, we can finally get both > cases right. > > This first patch just makes clang give explicit comdats to > GlobalValues where it is allowed to. > > A followup patch to llvm will then stop implicitly producing comdats. > > Cheers, > Rafael >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
