llvm-project/llvm/test
Duncan P. N. Exon Smith 520f8542ff Bitcode: Try to emit metadata in function blocks
Whenever metadata is only referenced by a single function, emit the
metadata just in that function block.  This should improve lazy-loading
by reducing the amount of metadata in the global block.

For now, this should catch all DILocations, and anything else that
happens to be referenced only by a single function.

It's also a first step toward a couple of possible future directions
(which this commit does *not* implement):

 1. Some debug info metadata is only referenced from compile units and
    individual functions.  If we can drop the link from the compile
    unit, this optimization will get more powerful.

 2. Any uniqued metadata that isn't referenced globally can in theory be
    emitted in every function block that references it (trading off
    bitcode size and full-parse time vs. lazy-load time).

Note: this assumes the new BitcodeReader error checking from r265223.
The metadata stored in function blocks gets purged after parsing each
function, which means unresolved forward references will get lost.
Since all the global metadata should have already been resolved by the
time we get to the function metadata blocks we just need to check for
that case.  (If for some reason we need to handle bitcode that fails the
checks in r265223, the fix is to store about-to-be-dropped unresolved
nodes in MetadataList::shrinkTo until they can be handled succesfully by
a future call to MetadataList::tryToResolveCycles.)

llvm-svn: 265226
2016-04-02 15:22:57 +00:00
..
Analysis [TTI] Let the cost model estimate ctpop costs based on legality 2016-03-31 10:42:40 +00:00
Assembler testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
Bindings [OCaml] Reinstate data_layout 2016-04-01 07:54:24 +00:00
Bitcode Bitcode: Try to emit metadata in function blocks 2016-04-02 15:22:57 +00:00
BugPoint
CodeGen [X86][AVX] Added vector float truncation (double2float) tests 2016-04-02 14:09:17 +00:00
DebugInfo Add missing emissionKind flags to the DICompileUnits of several old testcases. 2016-04-01 22:18:43 +00:00
Examples
ExecutionEngine Disable the new Orc lazy JIT tests on Windows, they do not pass 2016-02-10 18:46:42 +00:00
Feature [NVVM] Remove noduplicate attribute from synchronizing intrinsics. 2016-03-22 22:08:01 +00:00
FileCheck Reapply r262092: [FileCheck] Abort if -NOT is combined with another suffix. 2016-02-29 22:13:03 +00:00
Instrumentation [sancov] save entry block from pruning (it is always full dominator) 2016-04-01 18:13:19 +00:00
Integer
JitListener testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
LTO [LoopVectorize] Don't unconditionally print vectorization diagnostics 2016-04-01 00:34:39 +00:00
LibDriver
Linker testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
MC Add missing emissionKind flags to the DICompileUnits of several old testcases. 2016-04-01 22:18:43 +00:00
Object Create thin archive in GNU format to fix test on OS X. 2016-03-31 23:07:50 +00:00
Other [CG] Add a new pass manager printer pass for the old call graph and 2016-03-10 11:24:11 +00:00
SymbolRewriter
TableGen [GlobalISel][Target] Add an opcode for unconditional branch. 2016-03-11 17:27:38 +00:00
ThinLTO/X86 ThinLTO: special handling for LinkOnce functions 2016-04-01 21:53:50 +00:00
Transforms [InstCombine] Don't sink an instr after a catchswitch 2016-04-01 17:28:17 +00:00
Unit [lit] Hack lit to allow a test suite to request that it is run "early". 2016-03-12 03:03:31 +00:00
Verifier Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
YAMLParser
tools testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
.clang-format
CMakeLists.txt [CMake] Add convenience target llvm-test-depends to build test dependencies. 2016-03-02 00:27:14 +00:00
TestRunner.sh
lit.cfg Revert "[asan] Make the global_metadata_darwin.ll test require El Capitan or newer" 2016-03-29 18:27:24 +00:00
lit.site.cfg.in