hanchenye-llvm-project/llvm/tools
Teresa Johnson 12545075f0 Use a different block id for block of metadata kind records
Summary:
There are currently two blocks with the METADATA_BLOCK id at module
scope. The first has the module-level metadata values (consisting of
some combination of METADATA_* record codes except for METADATA_KIND).
The second consists only of METADATA_KIND records. The latter is used
only in the METADATA_ATTACHMENT block within function blocks (for
metadata attached to instructions).

For ThinLTO we want to delay the parsing of module level metadata
until all functions have been imported from that module (there is some
bookkeeping used to suture it up when we read it during a post-pass).
However, we do need the METADATA_KIND records when parsing the function
body during importing, since those kinds are used as described above.

To simplify identification and parsing of just the block containing
the metadata kinds, use a different block id (METADATA_KIND_BLOCK_ID).
Support older bitcode without the new block id as well.

Reviewers: dexonsmith, joker.eph

Subscribers: davidxl, llvm-commits

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

llvm-svn: 253154
2015-11-15 02:00:09 +00:00
..
bugpoint Make bugpoint ehpad/token friendly 2015-11-08 04:16:12 +00:00
bugpoint-passes [bugpoint] Add a named metadata (+their operands) reducer 2015-11-06 00:12:50 +00:00
dsymutil dsymutil: Prune module forward decl DIEs if a uniquable definition was 2015-11-10 21:31:05 +00:00
gold Clang format a few prior patches (NFC) 2015-11-02 18:02:11 +00:00
llc
lli Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
llvm-ar [llvm-ar] Use failIfError/fail helpers. 2015-11-14 19:00:33 +00:00
llvm-as Support for function summary index bitcode sections and files. 2015-10-04 14:33:43 +00:00
llvm-as-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-bcanalyzer Use a different block id for block of metadata kind records 2015-11-15 02:00:09 +00:00
llvm-c-test
llvm-config llvm-config.cpp: Prune an obsolete \param. [-Wdocumentation] 2015-11-11 17:50:20 +00:00
llvm-cov [llvm-cov] Adjust column widths for function and file reports 2015-10-21 16:03:32 +00:00
llvm-cxxdump Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-diff llvm-diff: Remove implicit ilist iterator conversions, NFC 2015-10-20 18:17:05 +00:00
llvm-dis
llvm-dwarfdump dwarfdump: Added macro support to llvm-dwarfdump tool. 2015-11-12 09:38:54 +00:00
llvm-extract
llvm-go
llvm-jitlistener
llvm-link Pass enum instead of bool to new linkInModule call in llvm-link 2015-11-03 15:10:50 +00:00
llvm-lto llvm-lto: trivial spelling changes to distinguish custom diagnostic handler and 2015-11-10 18:52:48 +00:00
llvm-mc Fix some Clang-tidy modernize warnings, other minor fixes. 2015-11-04 22:32:32 +00:00
llvm-mc-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-mcmarkup
llvm-nm Fix llvm-nm(1) printing of llvm-bitcode files for -format darwin to match darwin’s nm(1). 2015-11-10 00:31:08 +00:00
llvm-objdump [Object, MachO] Mark symbols from DATA and BSS sections as ST_Data 2015-11-12 09:40:29 +00:00
llvm-pdbdump llmv-pdbdump: Make BuiltinDumper shorter. NFC. 2015-11-03 20:16:18 +00:00
llvm-profdata [llvm-profdata] Add check for text profile formats and improve error reporting (2nd try) 2015-11-13 03:47:58 +00:00
llvm-readobj Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-rtdyld [JIT] Towards a working small memory model. 2015-10-21 22:12:03 +00:00
llvm-shlib [CMake] Bug 25059 - CMake libllvm.so.$MAJOR.$MINOR shared object name not compatible with ldconfig 2015-11-04 23:11:12 +00:00
llvm-size Reapply r250906 with many suggested updates from Rafael Espindola. 2015-11-05 19:24:56 +00:00
llvm-split
llvm-stress ADT: Remove last implicit ilist iterator conversions, NFC 2015-11-07 00:01:16 +00:00
llvm-symbolizer [Symbolizer]: Add -pretty-print option 2015-11-11 20:41:43 +00:00
lto Add a libLTO diagnostic handler that supports lto_get_error_message API 2015-11-11 19:59:08 +00:00
msbuild
obj2yaml
opt
sancov sancov test suite 2015-11-12 19:34:21 +00:00
verify-uselistorder [uselistorder] Insert blank line, NFC 2015-10-13 21:51:02 +00:00
xcode-toolchain [CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebuild and xcrun can search 2015-10-15 20:09:01 +00:00
yaml2obj Add a RAW mode to StringTableBuilder. 2015-10-23 21:48:05 +00:00
CMakeLists.txt [CMake] Autoconf builds libLTO with -fPIC, CMake should be able to as well. 2015-11-10 21:38:58 +00:00
LLVMBuild.txt Remove macho-dump. Its functionality is now covered by llvm-readobj. 2015-09-22 17:46:10 +00:00
Makefile Remove macho-dump. Its functionality is now covered by llvm-readobj. 2015-09-22 17:46:10 +00:00