1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test
Duncan P. N. Exon Smith 1fbdccf334 Reapply ~"Bitcode: Collect all MDString records into a single blob"
Spiritually reapply commit r264409 (reverted in r264410), albeit with a
bit of a redesign.

Firstly, avoid splitting the big blob into multiple chunks of strings.

r264409 imposed an arbitrary limit to avoid a massive allocation on the
shared 'Record' SmallVector.  The bug with that commit only reproduced
when there were more than "chunk-size" strings.  A test for this would
have been useless long-term, since we're liable to adjust the chunk-size
in the future.

Thus, eliminate the motivation for chunk-ing by storing the string sizes
in the blob.  Here's the layout:

    vbr6: # of strings
    vbr6: offset-to-blob
    blob:
       [vbr6]: string lengths
       [char]: concatenated strings

Secondly, make the output of llvm-bcanalyzer readable.

I noticed when debugging r264409 that llvm-bcanalyzer was outputting a
massive blob all in one line.  Past a small number, the strings were
impossible to split in my head, and the lines were way too long.  This
version adds support in llvm-bcanalyzer for pretty-printing.

    <STRINGS abbrevid=4 op0=3 op1=9/> num-strings = 3 {
      'abc'
      'def'
      'ghi'
    }

From the original commit:

Inspired by Mehdi's similar patch, http://reviews.llvm.org/D18342, this
should (a) slightly reduce bitcode size, since there is less record
overhead, and (b) greatly improve reading speed, since blobs are super
cheap to deserialize.

llvm-svn: 264551
2016-03-27 23:17:54 +00:00
..
Analysis AMDGPU: Cost model for basic integer operations 2016-03-25 01:16:40 +00:00
Assembler IR: Stop upgrading !llvm.loop attachments via MDString 2016-03-25 00:56:13 +00:00
Bindings Expose IRBuilder::CreateAtomicCmpXchg as LLVMBuildAtomicCmpXchg in the C API. 2016-03-19 21:28:28 +00:00
Bitcode Reapply ~"Bitcode: Collect all MDString records into a single blob" 2016-03-27 23:17:54 +00:00
BugPoint
CodeGen [PowerPC] Map max/minnum intrinsics and fmax/fmin to ISD nodes for CTR-based loop legality 2016-03-27 05:40:56 +00:00
DebugInfo Consider regmasks when computing register-based DBG_VALUE live ranges 2016-03-25 17:54:46 +00:00
Examples
ExecutionEngine
Feature [NVVM] Remove noduplicate attribute from synchronizing intrinsics. 2016-03-22 22:08:01 +00:00
FileCheck
Instrumentation [msan] Don't put module constructors in comdats. 2016-03-15 20:25:47 +00:00
Integer
JitListener
LibDriver
Linker Fix another case where we were unconditionally linking linkonce GVs. 2016-03-24 15:23:01 +00:00
LTO
MC [Power9] Implement new altivec instructions: permute, count zero, extend sign, negate, parity, shift/rotate, mul10 2016-03-26 05:46:11 +00:00
Object [llvm-readobj] Decode st_other symbol's flags 2016-03-24 16:10:37 +00:00
Other
SymbolRewriter
TableGen
ThinLTO/X86 [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
tools llvm-dwp: Include the dwo name (if available) when diagnosing duplicate CU IDs from dwp input files 2016-03-26 20:32:14 +00:00
Transforms Use DAG check to try to appease bot 2016-03-27 15:36:43 +00:00
Unit
Verifier [Verifier] Reject PHIs using defs from own block. 2016-03-26 23:32:57 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
TestRunner.sh