[PATCH] D16229: [LTO] Restore original linkage of externals prior to splitting

Tobias Edler von Koch via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 09:07:01 PST 2016


tobiasvk created this revision.
tobiasvk added reviewers: pcc, joker.eph.
tobiasvk added a subscriber: llvm-commits.
Herald added a subscriber: joker.eph.

This is a companion patch for http://reviews.llvm.org/D16124.

Internalized symbols increase the size of strongly-connected components in
SCC-based module splitting and thus reduce the amount of parallelism. This
patch records the original linkage of non-local symbols prior to
internalization and then restores it just before splitting/CodeGen. This is
also useful for cases where the linker requires symbols to remain external, for
instance, so they can be placed according to linker script rules.

It's currently under its own flag (-restore-globals) but should eventually
share a common flag with D16124.

http://reviews.llvm.org/D16229

Files:
  include/llvm/LTO/LTOCodeGenerator.h
  lib/LTO/LTOCodeGenerator.cpp
  test/LTO/X86/restore-externals.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16229.45003.patch
Type: text/x-patch
Size: 4543 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160115/d704d466/attachment.bin>


More information about the llvm-commits mailing list