llvm-project/llvm/lib
Teresa Johnson ff642b9b84 Restore "Function bitcode index in Value Symbol Table and lazy reading support"
This reverts commit r247898 (which reverted r247894).

Patch fixed to address two issues exposed by buildbots:
- unused variable warning in NDEBUG mode
- std::initializer_list lifetime issue causing test failures

Original Summary:
Support for including the function bitcode indices in the Value Symbol
Table. This requires writing the VST after the function blocks, which in
turn requires a new VST forward declaration record encoding the offset of
the full VST (which is backpatched to contain the offset after the VST
is written).

This patch also enables the lazy function reader to use the new function
indices out of the VST. This support will be used by ThinLTO as well, which
will be in a follow on patch. Backwards compatibility with older bitcode
files is maintained.

A new test is also included.

The bitcode format (used for the lazy reader as well as the upcoming
ThinLTO patches) came out of discussions with Duncan and others and is
described here:
https://drive.google.com/file/d/0B036uwnWM6RWdnBLakxmeDdOeXc/view

Reviewers: dexonsmith, davidxl, joker.eph

Subscribers: llvm-commits

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

llvm-svn: 247927
2015-09-17 20:12:00 +00:00
..
Analysis [SCEV] Use auto instead of full iterator type; NFCI. 2015-09-17 19:04:09 +00:00
AsmParser Revert "[opaque pointer type] Pass GlobalAlias the actual pointer type rather than decomposing it into pointee type + address space" 2015-09-14 18:01:59 +00:00
Bitcode Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
CodeGen [WinEH] Add and use hasEHPadSuccessor instead of getLandingPadSuccessor 2015-09-17 17:19:40 +00:00
DebugInfo [dwarfdump] Do not apply relocations in mach-o files if there is no LoadedObjectInfo. 2015-08-23 04:44:21 +00:00
ExecutionEngine [RuntimeDyld] Support non-zero addends for the MachO X86_64 SUBTRACTOR reloc. 2015-09-10 21:05:58 +00:00
Fuzzer [libFuzzer] perform fewer crossover operations compared to plain mutations 2015-09-11 00:20:58 +00:00
IR [opaque pointer types] Add an explicit value type to GlobalObject 2015-09-14 21:47:27 +00:00
IRReader Return a unique_ptr from getLazyBitcodeModule and parseBitcodeFile. NFC. 2015-06-16 22:27:55 +00:00
LTO Reapply "LTO: Disable extra verify runs in release builds" 2015-09-15 23:05:59 +00:00
LibDriver There is only one saver of strings. 2015-08-13 01:07:02 +00:00
LineEditor Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Linker [opaque pointer types] Switch a few cases of getElementType over, since I had them lying around anyway 2015-09-14 20:29:26 +00:00
MC Add assembler fatal error for undefined assembler labels in COFF writer 2015-09-16 16:26:29 +00:00
Object Re-apply r246276 - Object: Teach llvm-ar to create symbol table for COFF short import files 2015-08-28 07:40:30 +00:00
Option Add an ArgList::AddAllArgs that accepts a vector of OptSpecifier. 2015-07-29 17:34:41 +00:00
Passes [PM] Port SROA to the new pass manager. 2015-09-12 09:09:14 +00:00
ProfileData GCC AutoFDO profile reader - Initial support. 2015-09-17 00:17:24 +00:00
Support Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
TableGen TableGen: Support folding casts from bits to int 2015-07-31 01:12:06 +00:00
Target [mips] Add assembler support for the .cprestore directive. 2015-09-17 16:08:39 +00:00
Transforms [InstCombine] Optimize icmp slt signum(x), 1 --> icmp slt x, 1 2015-09-16 20:41:29 +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