mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-12 06:06:19 +00:00
a73e509bf8
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264551 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
Inputs | ||
2006-12-11-Cast-ConstExpr.ll | ||
2009-06-11-FirstClassAggregateConstant.ll | ||
aggregateInstructions.3.2.ll | ||
aggregateInstructions.3.2.ll.bc | ||
anon-functions.ll | ||
arm32_neon_vcnt_upgrade.ll | ||
atomic.ll | ||
attributes-3.3.ll | ||
attributes-3.3.ll.bc | ||
attributes.ll | ||
auto_upgrade_intrinsics.bc | ||
avr-calling-conventions.ll | ||
avr-calling-conventions.ll.bc | ||
binaryFloatInstructions.3.2.ll | ||
binaryFloatInstructions.3.2.ll.bc | ||
binaryIntInstructions.3.2.ll | ||
binaryIntInstructions.3.2.ll.bc | ||
bitcode-wrapper-header-armv7m.ll | ||
bitcode-wrapper-header-x86_64.ll | ||
bitwiseInstructions.3.2.ll | ||
bitwiseInstructions.3.2.ll.bc | ||
blockaddress.ll | ||
calling-conventions.3.2.ll | ||
calling-conventions.3.2.ll.bc | ||
case-ranges-3.3.ll | ||
case-ranges-3.3.ll.bc | ||
cmpxchg-upgrade.ll | ||
cmpxchg-upgrade.ll.bc | ||
cmpxchg.3.6.ll | ||
cmpxchg.3.6.ll.bc | ||
compatibility-3.6.ll | ||
compatibility-3.6.ll.bc | ||
compatibility-3.7.ll | ||
compatibility-3.7.ll.bc | ||
compatibility-3.8.ll | ||
compatibility-3.8.ll.bc | ||
compatibility.ll | ||
constantsTest.3.2.ll | ||
constantsTest.3.2.ll.bc | ||
conversionInstructions.3.2.ll | ||
conversionInstructions.3.2.ll.bc | ||
debug-loc-again.ll | ||
DICompileUnit-no-DWOId.ll | ||
DICompileUnit-no-DWOId.ll.bc | ||
DILocalVariable-explicit-tags.ll | ||
DILocalVariable-explicit-tags.ll.bc | ||
DISubprogram-distinct-definitions.ll | ||
DISubprogram-distinct-definitions.ll.bc | ||
drop-debug-info.3.5.ll | ||
drop-debug-info.3.5.ll.bc | ||
extractelement.ll | ||
fcmp-fast.ll | ||
flags.ll | ||
function-encoding-rel-operands.ll | ||
function-local-metadata.3.5.ll | ||
function-local-metadata.3.5.ll.bc | ||
global-variables.3.2.ll | ||
global-variables.3.2.ll.bc | ||
highLevelStructure.3.2.ll | ||
highLevelStructure.3.2.ll.bc | ||
identification.ll | ||
inalloca.ll | ||
invalid.ll | ||
invalid.ll.bc | ||
invalid.test | ||
linkage-types-3.2.ll | ||
linkage-types-3.2.ll.bc | ||
local-linkage-default-visibility.3.4.ll | ||
local-linkage-default-visibility.3.4.ll.bc | ||
mdstring-high-bits.ll | ||
memInstructions.3.2.ll | ||
memInstructions.3.2.ll.bc | ||
metadata-2.ll | ||
metadata-strings.ll | ||
metadata.3.5.ll | ||
metadata.3.5.ll.bc | ||
metadata.ll | ||
miscInstructions.3.2.ll | ||
miscInstructions.3.2.ll.bc | ||
null-type.ll | ||
null-type.ll.bc | ||
old-aliases.ll | ||
old-aliases.ll.bc | ||
operand-bundles.ll | ||
padding.test | ||
pr18704.ll | ||
pr18704.ll.bc | ||
PR23310.test | ||
ptest-new.ll | ||
ptest-old.ll | ||
select.ll | ||
shuffle.ll | ||
source-filename.test | ||
ssse3_palignr.ll | ||
standardCIntrinsic.3.2.ll | ||
standardCIntrinsic.3.2.ll.bc | ||
tailcall.ll | ||
terminatorInstructions.3.2.ll | ||
terminatorInstructions.3.2.ll.bc | ||
thinlto-function-summary-callgraph-pgo.ll | ||
thinlto-function-summary-callgraph.ll | ||
thinlto-function-summary-refgraph.ll | ||
thinlto-function-summary.ll | ||
thinlto-summary-linkage-types.ll | ||
upgrade-global-ctors.ll | ||
upgrade-global-ctors.ll.bc | ||
upgrade-loop-metadata.ll | ||
upgrade-loop-metadata.ll.bc | ||
upgrade-subprogram.ll | ||
upgrade-subprogram.ll.bc | ||
upgrade-tbaa.ll | ||
use-list-order2.ll | ||
use-list-order.ll | ||
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 | ||
weak-cmpxchg-upgrade.ll | ||
weak-cmpxchg-upgrade.ll.bc | ||
weak-macho-3.5.ll | ||
weak-macho-3.5.ll.bc |