llvm-6502/tools
Rafael Espindola 03d2823e02 Add support for comdats to the gold plugin.
There are two parts to this. First, the plugin needs to tell gold the comdat by
setting comdat_key.

What gets things a bit more complicated is that gold only seems
symbols. In particular, if A is an alias to B, it only sees the symbols
A and B. It can then ask us to keep symbol A but drop symbol B. What
we have to do instead is to create an internal version of B and make A
an alias to that.

At some point some of this logic should be moved to lib/Linker so that
we don't map a Constant to an internal version just to have lib/Linker
map that again to the destination module.

The reason for implementing this in tools/gold for now is simplicity.
With it in place it should be possible to update clang to use comdats
for constructors and destructors on ELF without breaking the LTO
bootstrap. Once that is done I intend to come back and improve the
interface lib/Linker exposes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216302 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-22 23:26:10 +00:00
..
bugpoint Handle inlining in populateLTOPassManager like in populateModulePassManager. 2014-08-21 13:35:30 +00:00
bugpoint-passes [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
gold Add support for comdats to the gold plugin. 2014-08-22 23:26:10 +00:00
llc Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
lli Quick fix for an use after free. 2014-08-20 15:19:37 +00:00
llvm-ar Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-as Modernize the .ll parsing interface. 2014-08-19 16:58:54 +00:00
llvm-bcanalyzer Remove some calls to std::move. 2014-08-01 14:31:55 +00:00
llvm-c-test Convert getFileOffset to getOffset and move it to its only user. 2014-04-21 13:45:32 +00:00
llvm-config Change llvm-config --ldflags to report ${CMAKE_CXX_LINK_FLAGS} 2014-04-25 01:44:20 +00:00
llvm-cov llvm-cov: add code coverage tool that's based on coverage mapping format and clang's pgo. 2014-08-22 22:56:03 +00:00
llvm-diff Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
llvm-dis Remove 'using std::error_code' from tools. 2014-06-13 03:07:50 +00:00
llvm-dwarfdump Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-extract Use range loops. 2014-05-08 19:30:17 +00:00
llvm-jitlistener IntelJITEventListener updates to fix breaks by recent changes to EngineBuilder and DIContext. 2014-08-21 07:01:55 +00:00
llvm-link raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary. 2014-04-29 23:26:49 +00:00
llvm-lto Prune Redundant libdeps in CMake's target_link_libraries and LLVMBuild.txt. 2014-07-15 11:37:03 +00:00
llvm-mc Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr 2014-08-21 20:44:56 +00:00
llvm-mcmarkup Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr 2014-08-21 20:44:56 +00:00
llvm-nm Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-objdump Add the start of the support for llvm-objdump’s -private-headers for Mach-O files. 2014-08-22 20:35:18 +00:00
llvm-profdata Support: Fix option handling when using cl::Required with aliasopt 2014-07-14 20:53:57 +00:00
llvm-readobj Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-rtdyld Temporarily Revert "Nuke the old JIT." as it's not quite ready to 2014-08-07 22:02:54 +00:00
llvm-shlib Revert of 214418: 2014-08-01 06:16:03 +00:00
llvm-size Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-stress raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary. 2014-04-29 23:26:49 +00:00
llvm-symbolizer Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
llvm-vtabledump Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
lto Remove lto_codegen_set_attr. 2014-08-01 14:57:05 +00:00
macho-dump Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
msbuild msbuild integration: remove duplicated lines and BOM from 2014 integration (PR20341) 2014-07-31 20:33:22 +00:00
obj2yaml Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
opt Rename AtomicExpandLoadLinked into AtomicExpand 2014-08-21 21:50:01 +00:00
verify-uselistorder IR: Implement uselistorder assembly directives 2014-08-19 21:30:15 +00:00
yaml2obj Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
CMakeLists.txt Rename llvm-uselistorder => verify-uselistorder 2014-07-30 17:11:27 +00:00
LLVMBuild.txt Rename llvm-uselistorder => verify-uselistorder 2014-07-30 17:11:27 +00:00
Makefile Rename llvm-uselistorder => verify-uselistorder 2014-07-30 17:11:27 +00:00