aboutsummaryrefslogtreecommitdiff
path: root/lib/Bitcode/Writer/BitcodeWriter.cpp
AgeCommit message (Collapse)Author
2007-05-04allow the 8-bit abbrev to be used for either bb or other valuesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36761 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04shave another 150K off of kc++, by using a 7-bit encoding for BB namesChris Lattner
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? :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36759 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04where possible, encode symtab names with 7 bits per char instead of 8. ThisChris Lattner
shaves 110K off kc++ to 3514K. Before: Block ID #14 (VALUE_SYMTAB): Num Instances: 2345 Total Size: 1.50425e+07b/1.88031e+06B/470077W Average Size: 6414.69b/801.837B/200.459W % of file: 51.8057 Tot/Avg SubBlocks: 0/0 Tot/Avg Abbrevs: 2345/1 Tot/Avg Records: 120924/51.5667 % Abbrev Recs: 85.1791 after: Block ID #14 (VALUE_SYMTAB): Num Instances: 2345 Total Size: 1.41229e+07b/1.76536e+06B/441341W Average Size: 6022.56b/752.82B/188.205W % of file: 50.2295 Tot/Avg SubBlocks: 0/0 Tot/Avg Abbrevs: 4690/2 Tot/Avg Records: 120924/51.5667 % Abbrev Recs: 85.1791 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04Encode all value symtab strings as arrays of 8-bit fixed width integers,Chris Lattner
instead of the default inefficient encoding. This shrinks kc++ from 4134K to 3629K git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36755 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04eliminate internal length fields from record. Records already know theirChris Lattner
total length git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36752 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04stub out creation of BLOCKINFO_BLOCKChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36749 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04fix encoding of invoke instructions. kc++ now round tripsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36737 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04encode and read param attrs along with function type. WE can now roundtrip ↵Chris Lattner
Olden/voronoi loslessly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36735 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04fix a bug encoding param attrsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36730 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04add writer support for param attrsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36724 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-04trivial scaffolding for param attrsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36720 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03Encoding calling conv info in call/invoke instrs, tree add now round trips ↵Chris Lattner
completely git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36707 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03don't bother encoding # varargsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36705 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03fix encoding of BB names in the symtabChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36704 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02add reader logic for terminator instrs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36642 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-02use the correct code for binop instrsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01fix build with non-buggy compilersChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36621 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01write the symbol table for function bodiesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36610 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-01encode all of the instructions.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36609 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29Implement visibility checking during linking. Also implement protectedAnton Korobeynikov
visibility support for bitcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29Fix this to use the right block IDChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36550 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-29moved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36549 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26start code for writing out instructions. Separate BB#s from normal valueChris Lattner
#'s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36472 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26add support for incorporating and purging functions to the value enumeratorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36465 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26improve a commentChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36464 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26move some code around, fix a bug in the reader reading globalinits (whichChris Lattner
I just introduced), stub out function reading, purge aggregate values from the value table before reading functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36463 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26add bitcode alias supportChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36461 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24implement reading and writing of constant exprs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36394 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24fix off-by-one computing size for section abbrevsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36388 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-24Emit module-level constants.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36384 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23write out the symtab for globals.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23implement reading of abbrevs, and writing of abbreviated global varrs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23first part of implementation of abbrevs. The writer isn't fully there yet ↵Chris Lattner
and the reader doesn't handle them at all yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36363 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23promote LLVMBitCodes to be a public headerChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36358 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-22Initial support for writing bitcode files. This currently only writes types,Chris Lattner
the type symtab, and global/function protos, and is missing the important size optimization, but it is a place to start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36331 91177308-0d34-0410-b5e6-96231b3b80d8