llvm-project/llvm
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
..
autoconf Don't use bashism/kshism of test ==. From Kamil Rytarowski. 2015-09-12 16:30:32 +00:00
bindings [bindings] Update Go bindings to DIBuilder 2015-09-06 02:22:15 +00:00
cmake [CMake] More refactoring of symlink creation. 2015-09-16 20:49:59 +00:00
docs Fix doc build: sublists require a blank line before/after. 2015-09-17 15:59:52 +00:00
examples [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
include Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
lib Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
projects
resources
test Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
tools Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
unittests 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
utils Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC. 2015-09-15 16:17:27 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] [Darwin] Need to set lto_library on CMAKE_MODULE_LINKER_FLAGS as well 2015-09-11 18:39:19 +00:00
CODE_OWNERS.TXT CODE_OWNERS.TXT is supposed to be sorted by surname 2015-09-07 00:41:40 +00:00
CREDITS.TXT
LICENSE.TXT
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
Makefile.rules We're actually -Wmissing-field-initializers clean thanks to the cmake 2015-08-07 16:44:47 +00:00
README.txt
configure Don't use bashism/kshism of test ==. From Kamil Rytarowski. 2015-09-12 16:30:32 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.