llvm-project/llvm/lib
Teresa Johnson 4504c1bc80 [ThinLTO] Enable in-place symbol changes for exporting module
Summary:
Move ThinLTO global value processing functions out of ModuleLinker and
into a new ThinLTOGlobalProcessor class, which performs any necessary
linkage and naming changes on the given module in place.

As a result, renameModuleForThinLTO no longer needs to create a new
Module when performing any necessary local to global promotion on a
module that we are possibly exporting from during a ThinLTO backend
compilation.

During function importing the ThinLTO processing is still invoked from
the ModuleLinker (via the new class), as it needs to perform renaming and
linkage changes on the source module, e.g. in order to get the correct
renaming during local to global promotion.

Reviewers: joker.eph

Subscribers: davidxl, llvm-commits, joker.eph

Differential Revision: http://reviews.llvm.org/D15696

llvm-svn: 257174
2016-01-08 15:00:00 +00:00
..
Analysis [Vectorization] Actually return from error case in isStridedPtr 2016-01-08 01:55:13 +00:00
AsmParser Implemented Support of IA interrupt and exception handlers: 2015-12-21 14:07:14 +00:00
Bitcode Bitcode: Fix reading and writing of ConstantDataVectors of halfs 2016-01-06 22:31:32 +00:00
CodeGen [WinEH] Update WinEHFuncInfo if StackColoring merges allocas 2016-01-08 08:03:55 +00:00
DebugInfo Fix several accidental DOS line endings in source files 2016-01-03 17:22:03 +00:00
ExecutionEngine Delete APIs that have been deprecated since 2010. 2015-12-19 21:42:07 +00:00
Fuzzer [libFuzzer] add a position hint to the dictionary-based mutator 2016-01-07 01:49:35 +00:00
IR Remove static global GCNames from Function.cpp and move it to the Context 2016-01-08 02:28:20 +00:00
IRReader [ThinLTO] Metadata linking for imported functions 2015-12-17 17:14:09 +00:00
LTO [attrs] Split the late-revisit pattern for deducing norecurse in 2016-01-08 10:55:52 +00:00
LibDriver [Option] Use an ArrayRef to store the Option Infos in OptTable. NFC 2015-10-21 16:30:42 +00:00
LineEditor
Linker [ThinLTO] Enable in-place symbol changes for exporting module 2016-01-08 15:00:00 +00:00
MC Added support for macro emission in dwarf (supporting DWARF version 4). 2016-01-07 14:28:20 +00:00
Object Handle archives with paths in the names. 2015-12-18 16:07:17 +00:00
Option Convert Arg, ArgList, and Option to dump() to dbgs() rather than errs(). 2015-12-18 18:55:26 +00:00
Passes [attrs] Extract the pure inference of function attributes into 2015-12-27 08:41:34 +00:00
ProfileData [PGO] Ensure vp data in indexed profile always sorted 2016-01-08 05:45:21 +00:00
Support IntEqClasses: Let join() return the new leader 2016-01-08 01:16:39 +00:00
TableGen [TableGen] Use some free space in Init to store the opcode for UnOpInit/BinOpInit/TernOpInit allowing those types to be a little smaller. NFC 2016-01-04 06:28:49 +00:00
Target AMDGPU/SI: Emit global variable sizes when targeting HSA 2016-01-08 14:50:28 +00:00
Transforms [ThinLTO] Delay metadata materializtion in function importer 2016-01-08 14:17:41 +00:00
CMakeLists.txt LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
Makefile LibDriver, llvm-lib: introduce. 2015-06-09 21:50:22 +00:00