[PATCH] D40747: [ThinLTO] Enable importing of aliases as copy of aliasee

Teresa Johnson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 1 13:03:45 PST 2017


tejohnson created this revision.
Herald added subscribers: eraman, inglorion, mehdi_amini.

This implements a missing feature to allow importing of aliases, which
was previously disabled because alias cannot be available_externally.
We instead import an alias as a copy of its aliasee.

Some additional work was required in the IndexBitcodeWriter for the
distributed build case, to ensure that the aliasee has a value id
in the distributed index file (i.e. even when it is not being
imported directly).

This is a performance win in codes that have many aliases, e.g. C++
applications that have many constructor and destructor aliases.


https://reviews.llvm.org/D40747

Files:
  include/llvm/IR/ModuleSummaryIndex.h
  include/llvm/IR/Value.h
  include/llvm/Transforms/IPO/FunctionImport.h
  lib/Bitcode/Reader/BitcodeReader.cpp
  lib/Bitcode/Writer/BitcodeWriter.cpp
  lib/IR/Value.cpp
  lib/Transforms/IPO/FunctionImport.cpp
  test/ThinLTO/X86/Inputs/distributed_import.ll
  test/ThinLTO/X86/Inputs/distributed_indexes.ll
  test/ThinLTO/X86/alias_import.ll
  test/ThinLTO/X86/distributed_import.ll
  test/ThinLTO/X86/distributed_indexes.ll
  test/ThinLTO/X86/funcimport.ll
  test/Transforms/FunctionImport/funcimport.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40747.125202.patch
Type: text/x-patch
Size: 28856 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171201/b48c38af/attachment.bin>


More information about the llvm-commits mailing list