Commit Graph

32263 Commits

Author SHA1 Message Date
Chris Lattner fd1ad10e61 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? :)

llvm-svn: 36759
2007-05-04 20:58:35 +00:00
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 0c7704f23c use a template to eliminate manual code duplication
llvm-svn: 36757
2007-05-04 20:40:50 +00:00
Bill Wendling e6182267d7 Add an "implies" field to features. This indicates that, if the current
feature is set, then the features in the implied list should be set also.
The opposite is also enforced: if a feature in the implied list isn't set,
then the feature that owns that implies list shouldn't be set either.

llvm-svn: 36756
2007-05-04 20:38:40 +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 5c71df1376 add support for array abbreviations.
llvm-svn: 36754
2007-05-04 20:33:47 +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 a49bfa6701 eliminate lengths from record bodies
llvm-svn: 36751
2007-05-04 19:10:48 +00:00
Chris Lattner 702658c0cc stub out creation of BLOCKINFO_BLOCK
llvm-svn: 36749
2007-05-04 18:26:27 +00:00
Chris Lattner 83e10c4e67 minor cleanups. Add provisions for a new standard BLOCKINFO_BLOCK
block type.

llvm-svn: 36748
2007-05-04 18:25:49 +00:00
Chris Lattner fde2829347 refcount BitCodeAbbrev objects
llvm-svn: 36747
2007-05-04 17:35:19 +00:00
Duncan Sands 6e5011d208 Test that the eh lowering code can handle constant folded bitcasts.
llvm-svn: 36746
2007-05-04 17:14:42 +00:00
Duncan Sands 4cb9eb81ef A bitcast of a global variable may have been constant folded to a GEP -
handle this case too.

llvm-svn: 36745
2007-05-04 17:12:26 +00:00
Dan Gohman 2bcbd5b7ca Use IntrinsicInst to test for prefetch instructions, which is ever so
slightly nicer than using CallInst with an extra check; thanks Chris.

llvm-svn: 36743
2007-05-04 14:59:09 +00:00
Chris Lattner 430e80d670 optimize constant layout. This fixes encoding of 181.mcf (by ensuring
integer structure idx's are emitted before constant expr geps) and shrinks
files slightly.  For example kc++ shrinks from 4326188 to 4240128 bytes.

llvm-svn: 36742
2007-05-04 05:21:47 +00:00
Chris Lattner a8713beddd simple optimization for the type table
llvm-svn: 36741
2007-05-04 05:05:48 +00:00
Chris Lattner 5c455c3fe9 regenerate
llvm-svn: 36740
2007-05-04 04:01:37 +00:00
Chris Lattner cf40d5097b fix a bug where llvm-as couldn't assemble the .ll file for 252.eon.
llvm-svn: 36739
2007-05-04 04:01:07 +00:00
Chris Lattner beca065b1e storeinst ctor takes isvolatile before alignment. With this, 176.gcc roundtrips
llvm-svn: 36738
2007-05-04 03:57:30 +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 e11c6ce3bc fix a misplaced error
llvm-svn: 36736
2007-05-04 03:50:29 +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 a919f6dddc if functiontype is going to have a pointer to a paramattr object, it better
be const.  The only way to get a pointer to these returns a const pointer.

llvm-svn: 36734
2007-05-04 03:39:28 +00:00
Reid Spencer 0454316c79 Bitcast all the bits of a floating point value, not just one. The zero
extension is needed because the constructor for the Destination value
causes the APInt to have a bit width of 1.
Patch by Guoling Han.

llvm-svn: 36733
2007-05-04 03:37:38 +00:00
Reid Spencer 955162aaae Add a test case for testing the LLI interpreter wrt bitcast of fp to integer.
llvm-svn: 36732
2007-05-04 03:35:17 +00:00
Chris Lattner fee5a3752a add support for reading the param attrs block
llvm-svn: 36731
2007-05-04 03:30:17 +00:00
Chris Lattner fc5b619419 fix a bug encoding param attrs
llvm-svn: 36730
2007-05-04 03:14:09 +00:00
Chris Lattner c97d08f702 add a helper
llvm-svn: 36729
2007-05-04 03:13:39 +00:00
Chris Lattner a68e3c7cf3 remove dead code
llvm-svn: 36728
2007-05-04 03:02:54 +00:00
Chris Lattner 302dc74536 remove unused code
llvm-svn: 36727
2007-05-04 03:01:46 +00:00
Chris Lattner 0b7c5121f7 add support for new codes/block
llvm-svn: 36726
2007-05-04 03:01:41 +00:00
Chris Lattner e796a9eec9 add new codes
llvm-svn: 36725
2007-05-04 03:00:00 +00:00
Chris Lattner e72bf9fda6 add writer support for param attrs
llvm-svn: 36724
2007-05-04 02:59:04 +00:00
Reid Spencer dea02bd840 Allow this to compile with gcc 4.0.X
llvm-svn: 36723
2007-05-04 01:43:33 +00:00
Chris Lattner 2b1b18b2db new testcase
llvm-svn: 36722
2007-05-04 00:51:23 +00:00
Chris Lattner 874eb28ee6 pass by reference, not by value
llvm-svn: 36721
2007-05-04 00:45:24 +00:00
Chris Lattner e2f98ef52d trivial scaffolding for param attrs
llvm-svn: 36720
2007-05-04 00:44:52 +00:00
Evan Cheng 726e66f734 Test load global in static mode.
llvm-svn: 36719
2007-05-04 00:29:34 +00:00
Evan Cheng 33c9886001 On Mac OS X, GV requires an extra load only when relocation-model is non-static.
llvm-svn: 36718
2007-05-04 00:26:58 +00:00
Evan Cheng 579abf45bb New test case.
llvm-svn: 36717
2007-05-03 23:53:36 +00:00
Evan Cheng 044a0a8cfb Don't create indexed load / store with zero offset!
llvm-svn: 36716
2007-05-03 23:52:19 +00:00
Evan Cheng 23040754b0 Should never see an indexed load / store with zero offset.
llvm-svn: 36714
2007-05-03 23:30:36 +00:00
Dan Gohman 3fbb18d1b6 Allow strength reduction to make use of addressing modes for the
address operand in a prefetch intrinsic.

llvm-svn: 36713
2007-05-03 23:20:33 +00:00
Chris Lattner e4bbad630f enumerate parameter attr lists.
llvm-svn: 36709
2007-05-03 22:46:43 +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 c1d86cda8c the type field for a store is the type of the pointer, not the value.
With this fix I can round trip treeaadd, only losing calling conv info.

llvm-svn: 36706
2007-05-03 22:21:59 +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 5a800309af add a new code
llvm-svn: 36703
2007-05-03 22:16:11 +00:00
Chris Lattner 6ce15cb71e bug fixes
llvm-svn: 36701
2007-05-03 22:09:51 +00:00