new coalescer on other benchmarks

Henry Cejtin henry@research.nj.nec.com
Wed, 12 May 1999 00:52:09 -0400


Ok,  first  things  first: the new coalescer seems pretty bad in terms of run
time:
                        old CPU        new CPU          change
        knuth-bendix     34.77          36.23           -4.2%
        lexgen           65.79          67.62           -2.8%
        mlyacc           41.43          41.54           -0.3%
        ratio-regions    46.54          37.80           23.1%
        simple           44.07          39.06           12.8%
        vliw             41.14          44.78           -8.8%

Despite these lousy results, the trampoline counts all improved,  except  for
VLIW, which is what I was trying to do:

        knuth-bendix     5,970,302       4,693,902
        lexgen          18,588,580      13,094,922
        mlyacc          21,570,876      18,862,276
        ratio-regions   65,436,666       2,494,240
        simple          78,110,715      57,506,745
        vliw            45,479,093      52,652,798

Note,  ratio-regions  improved  by  more  than  a  factor of 26 (its run time
improved by 23%).  Why knuth-bendix and lexgen slowed down (by 4.2 and  2.8%)
when  the  number  of  inter-chunk  transfers decreased (by 27.2 and 42.0%) I
really don't understand.  I suppose I could have made some  chunk  large,  so
that  the switch was always being predicted correctly before, and now is not.

For inter-chunk returns, pretty much the same story:

        knuth-bendix.c   3,070,650       2,052,250
        lexgen.c        10,147,249       6,559,970
        mlyacc.c        13,272,415       9,673,815
        ratio-regions.c 33,771,423       1,247,102
        simple.c        38,960,387      29,324,907
        vliw.c          22,984,834      26,271,904

Again, except for vliw, everything improved.

As to counts, for number of returns, there was no change,  except  for  vliw.
The  old  coalescer  resulted  in  code  which  did  34,952,740 while the new
coalescer produced code which did 34,952,695.  Not much of a change, but  I'm
confused.

For limit checks, several changed, although not by much:

        knuth-bendix.c  21,396,299      21,396,299      NO CHANGE
        lexgen.c        68,843,609      68,843,610      +1
        mlyacc.c        91,048,654      91,048,655      +1
        ratio-regions.c 32,493,916      32,493,916      NO CHANGE
        simple.c        34,037,502      34,037,502      NO CHANGE
        vliw.c          65,806,335      65,806,064      -271

Any explanations?