[LLVMdev] Problems with lazy linking change

Matt Pharr matt.pharr at gmail.com
Fri Nov 4 10:46:06 PDT 2011


r143524 changed ModuleLinker such that when linking a Module B into a Module A, any internal/private/... functions in B are only linked into A if there is a use of them in A.  This is problematic for my usage of module linking, where I'm basically linking a few modules together (some of which include internal functions) and then generating additional code that may use some of the internal functions--so I'd like everything to be linked in at the start, so that all of those functions are available.  I don't want to not mark those functions as internal, since if they're not used, I'd like them to be eliminated when I'm done with compilation.  With this change, those functions are now no longer available.

If there's a different way I should be doing this (i.e. if I'm doing the wrong thing in the above), I'd be interested to hear a suggestion.  Alternatively, as a potential fix, I've attached a patch that adds an option to LinkModule() and LinkInModules() that enables/disables lazy linking.

Thanks,
-matt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: llvm.patch
Type: application/octet-stream
Size: 5861 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111104/b7d1e82e/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: clang.patch
Type: application/octet-stream
Size: 588 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111104/b7d1e82e/attachment-0001.obj>


More information about the llvm-dev mailing list