HomePhabricator

Restore "Resolution-based LTO API."

Authored by tejohnson on Aug 11 2016, 7:58 AM.

Description

Restore "Resolution-based LTO API."

This restores commit r278330, with fixes for a few bot failures:

  • Fix a late change I had made to the save temps output file that I missed due to existing files sitting on my disk
  • Fix a bunch of Windows bot failures with "ambiguous call to overloaded function" due to confusion between llvm::make_unique vs std::make_unique (preface the new make_unique calls with "llvm::")
  • Attempt to fix a modules bot failure by adding a missing include to LTO/Config.h.

Original change:

Resolution-based LTO API.

Summary:
This introduces a resolution-based LTO API. The main advantage of this API over
existing APIs is that it allows the linker to supply a resolution for each
symbol in each object, rather than the combined object as a whole. This will
become increasingly important for use cases such as ThinLTO which require us
to process symbol resolutions in a more complicated way than just adjusting
linkage.

Patch by Peter Collingbourne.

Reviewers: rafael, tejohnson, mehdi_amini

Subscribers: lhames, tejohnson, mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D20268

llvm-svn: 278338

Details

Committed
tejohnsonAug 11 2016, 7:58 AM
Differential Revision
D20268: Resolution-based LTO API.
Parents
rG3818f1b38ae7: revert 278334
Branches
Unknown
Tags
Unknown