[PATCH] D18252: Drop comdats from the dst module if they are not selected
Rafael Ávila de Espíndola via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 17 13:25:29 PDT 2016
rafael created this revision.
rafael added reviewers: majnemer, joker.eph.
rafael added a subscriber: llvm-commits.
A really unfortunate design of llvm-link and related libraries is that they operate one module at a time.
This means they can copy a GV to the destination module that should not be there in the final result because a later bitcode file takes precedence.
We already handled cases like a strong GV replacing a weak for example.
One case that is not currently handled is a comdat replacing another. This doesn't happen in ELF, but with COFF largest selection kind it is possible.
In "llvm-link a.ll b.ll" if the selected comdat was from a.ll, everything will work and we will not copy the comdat from b.ll.
But if we run "llvm-link b.ll a.ll", we fail to delete the already copied comdat from b.ll. This patch fixes that.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4235 bytes
Desc: not available
More information about the llvm-commits