aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CodeGen.cpp
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2011-11-02 00:24:56 +0000
committerTanya Lattner <tonic@nondot.org>2011-11-02 00:24:56 +0000
commit0a48b877c6d2c080f4316ea14b69960bc2aa5354 (patch)
tree84016c19b1668227ace0e93392445f9901c15957 /llvm/lib/CodeGen/CodeGen.cpp
parentee7e452571aaad699544d20f2a55cd94c9e0c376 (diff)
downloadllvm-0a48b877c6d2c080f4316ea14b69960bc2aa5354.zip
llvm-0a48b877c6d2c080f4316ea14b69960bc2aa5354.tar.gz
llvm-0a48b877c6d2c080f4316ea14b69960bc2aa5354.tar.bz2
Add support to the linker to lazily link in functions. This change only links functions marked with specific linkage (internal, private, linker_private, linker_private_weak, linker_private_weak_def_auto, linkonce, linkonce_odr, and available_externally) if they have uses in the destination module. Instead of automatically linking, these functions are placed onto a worklist to be processed in the final stage of linking. We iterate over the list and if any functions on the list have uses in the destination module, we link them in and repeat the process until no changes in the state (uses) has changed. This means that any functions in the LazilyLink worklist that have a use in the destination module will be linked in and none that don't.
llvm-svn: 143524
Diffstat (limited to 'llvm/lib/CodeGen/CodeGen.cpp')
0 files changed, 0 insertions, 0 deletions