This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/19794] [meta-bug] Jump threading related bugs
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Mar 2005 17:12:27 -0000
- Subject: [Bug tree-optimization/19794] [meta-bug] Jump threading related bugs
- References: <20050206175258.19794.kazu@cs.umass.edu>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From law at redhat dot com 2005-03-22 17:12 -------
The EON issue mentioned in my notes from last week is an instability in how IV
opts selects which induction variables to use. Zdenek has a patch which helps
increase the stability of the IV selection code and produce better debugging
information. That patch eliminates the huge EON regression, but there's still
some bad things happening.
Here's some hard data from SPEC2000:
Mainline + Zdenek's patch + Threading changes:
Runtime Ratio Runtime Ratio
164.gzip 158 887* 158 887*
175.vpr 264 530* 271 517*
176.gcc 130 846* 133 829*
181.mcf 337 534* 353 510*
186.crafty 116 864* 115 869*
197.parser 252 715* 255 706*
252.eon 166 783* 155 838*
253.perlbmk 190 947* 169 1063*
254.gap 117 939* 119 924*
255.vortex 183 1039* 182 1043*
256.bzip2 235 639* 230 652*
300.twolf 433 692* 447 671*
----------------------------------------------------------------
768 772
Which is rather disappointing, with the obvious exception of eon and
perlbmk which improve enough to offset all the other consistent losses.
I was still concerned about the instability of IV opts skewing the results
(either in a positive or negative way). So I did runs with IV opts disabled.
Mainline no IV opts + Threading Improvements
Runtime Ratio Runtime Ratio
164.gzip 157 894* 157 892*
175.vpr 263 533* 264 531*
176.gcc 127 866* 126 872*
181.mcf 329 547* 327 550*
186.crafty 114 877* 115 873*
197.parser 250 719* 249 723*
252.eon 173 752* 159 815*
253.perlbmk 172 1047* 150 1201*
254.gap 117 941* 118 934*
255.vortex 182 1046* 180 1055*
256.bzip2 225 667* 224 670*
300.twolf 429 699* 429 699*
-----------------------------------------------------------
781 796
Which looks *much* better. There are still some regressions, but they are
relatively small and are offset by similar small improvements. We still get
big speedups for perl and eon.
>From that I can conclude that there's still some bad interaction between
IV opts and the new threading code. Either the IV selection instability
is still causing significant issues or some other effect I haven't discovered
yet.
I'm going to spend a little time trying to figure out what interaction between
the new threading code and IV opts is still causing us heartburn before moving
forward with the threading changes.
[ I'll note that according to this test, we generally seem to get better code
without IV opts. Which is probably a good sign that the IV opts code needs
some serious tuning. ]
Jeff
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19794