[llvm-commits] CVS: llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
Chris Lattner
sabre at nondot.org
Fri May 4 13:58:52 PDT 2007
Changes in directory llvm/lib/Bitcode/Writer:
BitcodeWriter.cpp updated: 1.33 -> 1.34
---
Log message:
shave another 150K off of kc++, by using a 7-bit encoding for BB names
where we can. This shrinks kc++'s down to 3368K, with a VST record of:
Block ID #14 (VALUE_SYMTAB):
Num Instances: 2345
Total Size: 1.29508e+07b/1.61885e+06B/404713W
Average Size: 5522.73b/690.342B/172.585W
% of file: 48.0645
Tot/Avg SubBlocks: 0/0
Tot/Avg Abbrevs: 7035/3
Tot/Avg Records: 120924/51.5667
% Abbrev Recs: 100
Isn't it nice to be able to optimizer bc size without touching the reader? :)
---
Diffs of the changes: (+12 -1)
BitcodeWriter.cpp | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletion(-)
Index: llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff -u llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:1.33 llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:1.34
--- llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:1.33 Fri May 4 15:52:02 2007
+++ llvm/lib/Bitcode/Writer/BitcodeWriter.cpp Fri May 4 15:58:35 2007
@@ -32,7 +32,8 @@
// VALUE_SYMTAB_BLOCK abbrev id's.
VST_ENTRY_8_ABBREV = bitc::FIRST_APPLICATION_ABBREV,
- VST_ENTRY_7_ABBREV
+ VST_ENTRY_7_ABBREV,
+ VST_BBENTRY_7_ABBREV
};
@@ -732,6 +733,15 @@
if (Stream.EmitAbbrev(Abbv) != VST_ENTRY_7_ABBREV)
assert(0 && "Unexpected abbrev ordering!");
}
+ { // 7-bit fixed width VST_BBENTRY strings.
+ BitCodeAbbrev *Abbv = new BitCodeAbbrev();
+ Abbv->Add(BitCodeAbbrevOp(bitc::VST_CODE_BBENTRY));
+ Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));
+ Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Array));
+ Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 7));
+ if (Stream.EmitAbbrev(Abbv) != VST_BBENTRY_7_ABBREV)
+ assert(0 && "Unexpected abbrev ordering!");
+ }
// FIXME: Set up the abbrev, we know how many values there are!
@@ -759,6 +769,7 @@
unsigned Code;
if (isa<BasicBlock>(SI->getValue())) {
Code = bitc::VST_CODE_BBENTRY;
+ if (is7Bit) AbbrevToUse = VST_BBENTRY_7_ABBREV;
} else {
Code = bitc::VST_CODE_ENTRY;
AbbrevToUse = is7Bit ? VST_ENTRY_7_ABBREV : VST_ENTRY_8_ABBREV;
More information about the llvm-commits
mailing list