683 Commits

Author SHA1 Message Date
Chris Lattner
4d92598ab0 where possible, encode symtab names with 7 bits per char instead of 8. This
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

llvm-svn: 36758
2007-05-04 20:52:02 +00:00
Chris Lattner
2eae59f1c1 Encode all value symtab strings as arrays of 8-bit fixed width integers,
instead of the default inefficient encoding.  This shrinks kc++ from 4134K
to 3629K

llvm-svn: 36755
2007-05-04 20:34:50 +00:00
Chris Lattner
e14cb88e56 eliminate internal length fields from record. Records already know their
total length

llvm-svn: 36752
2007-05-04 19:11:41 +00:00
Chris Lattner
702658c0cc stub out creation of BLOCKINFO_BLOCK
llvm-svn: 36749
2007-05-04 18:26:27 +00:00
Chris Lattner
485a6d8fad fix encoding of invoke instructions. kc++ now round trips
llvm-svn: 36737
2007-05-04 03:52:24 +00:00
Chris Lattner
70f4566d8a encode and read param attrs along with function type. WE can now roundtrip Olden/voronoi loslessly
llvm-svn: 36735
2007-05-04 03:41:34 +00:00
Chris Lattner
fc5b619419 fix a bug encoding param attrs
llvm-svn: 36730
2007-05-04 03:14:09 +00:00
Chris Lattner
e72bf9fda6 add writer support for param attrs
llvm-svn: 36724
2007-05-04 02:59:04 +00:00
Chris Lattner
e2f98ef52d trivial scaffolding for param attrs
llvm-svn: 36720
2007-05-04 00:44:52 +00:00
Chris Lattner
4704527576 Encoding calling conv info in call/invoke instrs, tree add now round trips completely
llvm-svn: 36707
2007-05-03 22:34:03 +00:00
Chris Lattner
4bb39dbfde don't bother encoding # varargs
llvm-svn: 36705
2007-05-03 22:19:34 +00:00
Chris Lattner
6be58c65d4 fix encoding of BB names in the symtab
llvm-svn: 36704
2007-05-03 22:18:21 +00:00
Chris Lattner
5285b5ea2f add reader logic for terminator instrs.
llvm-svn: 36642
2007-05-02 05:46:45 +00:00
Chris Lattner
9f35f9112d use the correct code for binop instrs
llvm-svn: 36639
2007-05-02 04:26:36 +00:00
Chris Lattner
b811e951e9 fix build with non-buggy compilers
llvm-svn: 36621
2007-05-01 07:03:37 +00:00
Chris Lattner
fb6f9407ec write the symbol table for function bodies
llvm-svn: 36610
2007-05-01 02:14:57 +00:00
Chris Lattner
0a60325621 encode all of the instructions.
llvm-svn: 36609
2007-05-01 02:13:26 +00:00
Anton Korobeynikov
31fc4f9526 Implement visibility checking during linking. Also implement protected
visibility support for bitcode.

llvm-svn: 36577
2007-04-29 20:56:48 +00:00
Chris Lattner
f0a1ebae4b Fix this to use the right block ID
llvm-svn: 36550
2007-04-29 05:49:09 +00:00
Chris Lattner
87351e2a52 moved Writer.cpp -> BitcodeWriter.cpp to make it more unique in the tree.
llvm-svn: 36549
2007-04-29 05:31:57 +00:00
Chris Lattner
e6e364c198 start code for writing out instructions. Separate BB#s from normal value
#'s.

llvm-svn: 36472
2007-04-26 05:53:54 +00:00
Chris Lattner
5f640b9cc9 add support for incorporating and purging functions to the value enumerator
llvm-svn: 36465
2007-04-26 03:50:57 +00:00
Chris Lattner
a5211c43c2 improve a comment
llvm-svn: 36464
2007-04-26 03:32:43 +00:00
Chris Lattner
831d420256 move some code around, fix a bug in the reader reading globalinits (which
I just introduced), stub out function reading, purge aggregate values from
the value table before reading functions.

llvm-svn: 36463
2007-04-26 03:27:58 +00:00
Chris Lattner
44c1707207 add bitcode alias support
llvm-svn: 36461
2007-04-26 02:46:40 +00:00
Chris Lattner
1e16bcf7ff implement reading and writing of constant exprs.
llvm-svn: 36394
2007-04-24 07:07:11 +00:00
Chris Lattner
1e50c299a8 fix off-by-one computing size for section abbrevs
llvm-svn: 36388
2007-04-24 03:29:47 +00:00
Chris Lattner
52523561d9 Emit module-level constants.
llvm-svn: 36384
2007-04-24 00:16:04 +00:00
Chris Lattner
215e9cd3c2 write out the symtab for globals.
llvm-svn: 36374
2007-04-23 20:35:01 +00:00
Chris Lattner
b5491378b1 implement reading of abbrevs, and writing of abbreviated global varrs.
llvm-svn: 36367
2007-04-23 18:58:34 +00:00
Chris Lattner
4b00d92a09 first part of implementation of abbrevs. The writer isn't fully there yet and the
reader doesn't handle them at all yet.

llvm-svn: 36363
2007-04-23 16:04:05 +00:00
Chris Lattner
362b4a1c92 promote LLVMBitCodes to be a public header
llvm-svn: 36358
2007-04-23 01:01:37 +00:00
Chris Lattner
c1d10d67a1 Initial support for writing bitcode files. This currently only writes types,
the type symtab, and global/function protos, and is missing the important
size optimization, but it is a place to start.

llvm-svn: 36331
2007-04-22 06:24:45 +00:00