The performance of bloat seems to be stuck at around 7% of its peak
[1]. Although there are changes in gc perf, the big issue appears to be mutator degradation
[2]. It would be nice to get this back.
A closer look suggests two major dips, one at around 12222-12298 [3], and one at around 12830-12915 [4].
I did some experiments and established that 12223 was responsible for a 6% mutator degradation.
http://svn.sourceforge.net/jikesrvm/?rev=12223&view=rev
This commit moved O2 optimizations to O3, effectively turning them off. A quick look at mutator performance under [5] shows that bloat was probably the hardest hit benchmark.
I took a look at 12915 and the hit here was across the board, not specific to bloat [6].
I spent a little time trying to tease things apart w.r.t. 12223. First I established that the performance drop was coming from 12223. The only other suspects were these, but they did not contribute any measurable drop (I saw a small, consistent improvement of about 0.4%).
http://svn.sourceforge.net/jikesrvm/?rev=12294&view=rev
http://svn.sourceforge.net/jikesrvm/?rev=12296&view=rev
I did these numbers carefully (I measured 10 invocations, each timing the 10th iteration). Here's the info I have:
1. The commit seemed to boil down to 3 things:
a) SSA and related optimizations
b) Loop optimizations
c) A hand full of other misc
2. Turning loop optimizations back on reduces the hit of 12223 from 6.2% to 3.5%. See noloop.patch (applied in reverse to 12223). In other words, bloat seems to benefit from the loop optimizations.
3. Turning off the misc optimizations only (c) improves 12222 by 1% (ie they apparently were a net negative perf impact on bloat). See someoff.patch. In other words, the misc opts seem to slow bloat down.
[1]
http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1453/production/default/perf-dacapo/bloat-10/bloat-10-time.large.png
[2] http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1453/production/default/perf-dacapo/bloat-10/bloat-10-time.mu.large.png
[3] http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1396/production/default/perf-dacapo/bloat-10/bloat-10-time.mu.large.png
[4]
http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1235/production/default/perf-dacapo/bloat-10/bloat-10-time.mu.large.png
[5] http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1396/performance_report
[6] http://jikesrvm.anu.edu.au/cattrack/results/rvmx86lnx32.anu.edu.au/perf.1235/performance_report