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?