llvm-project/llvm/test/Bitcode
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
..
Inputs Add a module Hash in the bitcode and the combined index, implementing a kind of "build-id" 2016-04-01 05:33:11 +00:00
2006-12-11-Cast-ConstExpr.ll
2009-06-11-FirstClassAggregateConstant.ll
DICompileUnit-no-DWOId.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
DICompileUnit-no-DWOId.ll.bc IR / debug info: Add a DWOId field to DICompileUnit, 2015-05-21 20:37:30 +00:00
DILocalVariable-explicit-tags.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
DILocalVariable-explicit-tags.ll.bc DI: Remove DW_TAG_arg_variable and DW_TAG_auto_variable 2015-07-31 18:58:39 +00:00
DISubprogram-distinct-definitions.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
DISubprogram-distinct-definitions.ll.bc DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
PR23310.test Fix for PR23310: llvm-dis crashes when trying to upgrade an intrinsic. 2015-07-02 16:22:40 +00:00
aggregateInstructions.3.2.ll
aggregateInstructions.3.2.ll.bc
anon-functions.ll Fix PR25101 - Handle anonymous functions without VST entries 2015-10-10 14:18:36 +00:00
arm32_neon_vcnt_upgrade.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
atomic.ll
attributes-3.3.ll
attributes-3.3.ll.bc
attributes.ll Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
auto_upgrade_intrinsics.bc Upgrade TBAA *before* upgrading intrinsics 2016-03-16 23:17:54 +00:00
avr-calling-conventions.ll [AVR] Add calling convention parser tokens 2016-03-03 10:08:02 +00:00
avr-calling-conventions.ll.bc [AVR] Add calling convention parser tokens 2016-03-03 10:08:02 +00:00
binaryFloatInstructions.3.2.ll
binaryFloatInstructions.3.2.ll.bc
binaryIntInstructions.3.2.ll
binaryIntInstructions.3.2.ll.bc
bitcode-wrapper-header-armv7m.ll [llvm-bcanalyzer] Dump bitcode wrapper header 2016-01-29 05:55:09 +00:00
bitcode-wrapper-header-x86_64.ll [llvm-bcanalyzer] Dump bitcode wrapper header 2016-01-29 05:55:09 +00:00
bitwiseInstructions.3.2.ll
bitwiseInstructions.3.2.ll.bc
blockaddress.ll
calling-conventions.3.2.ll Parse 'ghccc' in .ll files as the GHC convention (cc 10) 2014-12-01 21:04:44 +00:00
calling-conventions.3.2.ll.bc
case-ranges-3.3.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
case-ranges-3.3.ll.bc
cmpxchg-upgrade.ll
cmpxchg-upgrade.ll.bc
cmpxchg.3.6.ll [opaque pointer type] Encode the pointee type in the bitcode for 'cmpxchg' 2015-04-28 04:30:29 +00:00
cmpxchg.3.6.ll.bc [opaque pointer type] Encode the pointee type in the bitcode for 'cmpxchg' 2015-04-28 04:30:29 +00:00
compatibility-3.6.ll Sort the enums in Attributes.h in case insensitive alphabetical order. 2015-11-11 02:11:46 +00:00
compatibility-3.6.ll.bc [IR] Limit bits used for CallingConv::ID, update tests 2015-10-27 21:17:06 +00:00
compatibility-3.7.ll Sort the enums in Attributes.h in case insensitive alphabetical order. 2015-11-11 02:11:46 +00:00
compatibility-3.7.ll.bc [IR] Limit bits used for CallingConv::ID, update tests 2015-10-27 21:17:06 +00:00
compatibility-3.8.ll [Bitcode] Add compatibility test for the 3.8 release 2016-03-16 05:43:03 +00:00
compatibility-3.8.ll.bc [Bitcode] Add compatibility test for the 3.8 release 2016-03-16 05:43:03 +00:00
compatibility.ll [WinEH] Verify unwind edges against EH pad tree 2016-01-10 04:28:38 +00:00
constantsTest.3.2.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
constantsTest.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
conversionInstructions.3.2.ll Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
conversionInstructions.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
debug-loc-again.ll [DebugInfo] Subprograms should belong to a CU. 2016-03-31 03:40:07 +00:00
drop-debug-info.3.5.ll llvm-dis: Stop crashing when dropping debug info 2015-02-25 01:10:03 +00:00
drop-debug-info.3.5.ll.bc llvm-dis: Stop crashing when dropping debug info 2015-02-25 01:10:03 +00:00
extractelement.ll
fcmp-fast.ll Add support for fast-math flags to the FCmp instruction. 2015-07-10 12:52:00 +00:00
flags.ll
function-encoding-rel-operands.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
function-local-metadata.3.5.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
function-local-metadata.3.5.ll.bc IR: Fix bitcode compatability filenames 2014-12-08 00:41:39 +00:00
global-variables.3.2.ll
global-variables.3.2.ll.bc
highLevelStructure.3.2.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
highLevelStructure.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
identification.ll Add an (optional) identification block in the bitcode 2015-10-26 18:37:00 +00:00
inalloca.ll
invalid.ll Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributes 2015-12-16 16:16:19 +00:00
invalid.ll.bc Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributes 2015-12-16 16:16:19 +00:00
invalid.test Support: Implement StreamingMemoryObject::getPointer 2016-03-27 23:00:59 +00:00
linkage-types-3.2.ll Bring r226038 back. 2015-01-19 15:16:06 +00:00
linkage-types-3.2.ll.bc
local-linkage-default-visibility.3.4.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
local-linkage-default-visibility.3.4.ll.bc
mdstring-high-bits.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
memInstructions.3.2.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
memInstructions.3.2.ll.bc
metadata-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
metadata-function-blocks.ll Bitcode: Try to emit metadata in function blocks 2016-04-02 15:22:57 +00:00
metadata-only-empty-string.ll BitcodeReader: Allow METADATA_STRINGS to only have !"" 2016-03-29 05:25:17 +00:00
metadata-strings.ll Reapply ~"Bitcode: Collect all MDString records into a single blob" 2016-03-27 23:17:54 +00:00
metadata.3.5.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
metadata.3.5.ll.bc Bitcode: Add METADATA_NODE and METADATA_VALUE 2014-12-11 23:02:24 +00:00
metadata.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
miscInstructions.3.2.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
miscInstructions.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
module_hash.ll Add a module Hash in the bitcode and the combined index, implementing a kind of "build-id" 2016-04-01 05:33:11 +00:00
null-type.ll
null-type.ll.bc
old-aliases.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
old-aliases.ll.bc
operand-bundles.ll [Bitcode][Asm] Teach LLVM to read and write operand bundles. 2015-09-24 23:34:52 +00:00
padding.test Improve handling of end of file in the bitcode reader. 2015-06-16 20:03:39 +00:00
pr18704.ll llvm-dis: Stop crashing when dropping debug info 2015-02-25 01:10:03 +00:00
pr18704.ll.bc
ptest-new.ll
ptest-old.ll
select.ll [BitcodeReader] Ensure we can read constant vector selects with an i1 condition 2015-08-31 18:00:30 +00:00
shuffle.ll
source-filename.test Restore "[ThinLTO] Use MD5 hash in function index." with fix 2016-02-10 21:55:02 +00:00
ssse3_palignr.ll
standardCIntrinsic.3.2.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
standardCIntrinsic.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
tailcall.ll [IR] Limit bits used for CallingConv::ID, update tests 2015-10-27 21:17:06 +00:00
terminatorInstructions.3.2.ll Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
terminatorInstructions.3.2.ll.bc Ensure bitcode encoding stays stable. 2014-09-23 08:48:01 +00:00
thinlto-function-summary-callgraph-pgo.ll [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
thinlto-function-summary-callgraph.ll [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
thinlto-function-summary-refgraph.ll [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
thinlto-function-summary.ll [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
thinlto-summary-linkage-types.ll [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
upgrade-global-ctors.ll
upgrade-global-ctors.ll.bc
upgrade-loop-metadata.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
upgrade-loop-metadata.ll.bc
upgrade-subprogram.ll testcase gardening: update the emissionKind enum to the new syntax. (NFC) 2016-04-01 00:16:49 +00:00
upgrade-subprogram.ll.bc DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
upgrade-tbaa.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
use-list-order.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
use-list-order2.ll [Bitcode] Add xfail test for PR24755 (uselistorder) 2015-09-10 16:02:24 +00:00
variableArgumentIntrinsic.3.2.ll
variableArgumentIntrinsic.3.2.ll.bc
vectorInstructions.3.2.ll
vectorInstructions.3.2.ll.bc
visibility-styles.3.2.ll
visibility-styles.3.2.ll.bc
vst-forward-declaration.ll Restore "Function bitcode index in Value Symbol Table and lazy reading support" 2015-09-17 20:12:00 +00:00
weak-cmpxchg-upgrade.ll
weak-cmpxchg-upgrade.ll.bc
weak-macho-3.5.ll Bitcode: Don't create comdats when autoupgrading macho bitcode 2015-01-20 05:58:07 +00:00
weak-macho-3.5.ll.bc Bitcode: Don't create comdats when autoupgrading macho bitcode 2015-01-20 05:58:07 +00:00