Alias Analysis Improvement Patch

Vladimir Makarov vmakarov@redhat.com
Mon Jun 16 16:24:00 GMT 2003


tm_gccmail@mail.kloo.net wrote:
> 
> On Fri, 13 Jun 2003, Vladimir N. Makarov wrote:
> 
> > In average gcc with the patch is worse especially for twolf.  I think I
> > should search for the reason of degradation in counteraction of scheduler
> > and alias analysis.
> >
> > The compiler is also slower ~25% (890s vs 1140 s) with the new alias
> > analysis on SPECINT2000.
> >
> > I did not check the code size (it is not important for Itanium).
> 
> On the ia64, the improved alias analysis might allow the first instruction
> scheduling pass more freedom to move instructions around and similarly
> increase register lifetimes. This would probably show up as increased code
> size as well.
> 
> (Although with 128 registers, you're less likely to run into this
>  problem...but 128 is still a finite number of registers.)

Here are the numbers for SPECINT2000 for ia64 gcc without and with the
new alias analysis when the 1st insn scheduling is switched off.

   164.gzip          1400   384           365*     1400   387          
362*
   175.vpr           1400   316           443*     1400   318          
440*
   176.gcc                                  
X                             X
   181.mcf           1800   734           245*     1800   718          
251*
   186.crafty        1000   223           449*     1000   222          
450*
   197.parser        1800   518           348*     1800   519          
347*
   252.eon           1300   499           261*     1300   502          
259*
   253.perlbmk       1800   381           472*     1800   382          
472*
   254.gap           1100   337           327*     1100   337          
327*
   255.vortex        1900   319           597*     1900   319          
596*
   256.bzip2         1500   393           382*     1500   391          
383*
   300.twolf         3000   640           469*     3000   641          
468*
   Est. SPECint_base2000                  384
   Est. SPECint2000                                                    
384

If we compare the numbers with the 1st insn scheduling in my previous
email,  the 1st insn scheduling gives 3-5% SPECINT2000 improvement for
ia64. I don't think that if we solve problem of creating a high register
pressure on the 1st insn scheduling, the new alias analysis will improve
the code for ia64 because it does not improve code on the 2nd insn
scheduling.

It does not mean that the new alias analysis is not necessary for ia64. 
I think it could work if we increase scope of insn scheduling (which
means writing a new global insn scheduling).  Unfortunately, now its
usage is not justified at least for ia64 because there is no improvement
and compiler is much slower.

I am going still to play with the patch and to try to find ways for its
improvement.

Vlad



More information about the Gcc-patches mailing list