This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/19794] [meta-bug] Jump threading related bugs


------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]