This is the mail archive of the gcc-patches@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]

Re: [tree-ssa] Speedup alias analysis [patch]


On Mon, 2003-06-23 at 18:05, law@redhat.com wrote:

> So do you have any performance comparisons you'd like to share with the
> rest of us :-)
> 
You'd think that would be the first thing I should've posted, eh? :)

I'm back now, and collected some more data.  All the times in these
charts are user times in seconds.  They are aggregated over a set of .i
and .ii files.

For the compiler itself I have a mix of large .i files from the compiler
itself and a bunch of large .ii files from libstdc++.  Incidentally, I
don't know what I'm going to do with Java.  AFAIK, one can't really get
the equivalent of a .i file in Java.

The difference here is not too great.  Most are lost in the noise.  Not
surprising, really, since we have been beating on these for a while
now.  We get some decent gains in alias analysis (38%) and PHI insertion
(20%), which is what I was mainly looking for:

Files from gcc and libstdc++     Before          After      % Improvement
-----------------------------------------------------------------------------
 tree CFG construction            1.77            1.57          11%
 tree CFG cleanup                 0.65            0.63           3%
 tree alias analysis              3.93            2.43          38%
 tree PHI insertion               1.33            1.06          20%
 tree SSA rewrite                 3.02            3.15         - 4%
 tree SSA other                  12.19           12.05           1%
 tree SSA to normal               4.07            4.23         - 4%
 tree CCP                         3.32            3.19           4%
 tree COPYPROP                    0.41            0.42         - 2%
 tree DCE                         1.87            1.82           2%
-----------------------------------------------------------------------------
Total for tree optimizers        38.96           36.64           6%
Total compile time              357.86          345.37         3.5%
-----------------------------------------------------------------------------


For the .ii files I have for POOMA, the improvements are more
noticeable:

Collected POOMA .ii files        Before          After      % Improvement
-----------------------------------------------------------------------------
 tree CFG construction            7.94            7.84          1.3%
 tree CFG cleanup                 1.22            1.24         -1.7%
 tree alias analysis            155.45            5.95         96.2%
 tree PHI insertion             277.08           64.90         76.6%
 tree SSA rewrite                34.61            7.72         77.7%
 tree SSA other                 153.11           36.53         76.1%
 tree SSA to normal              39.47            9.31         76.4%
 tree CCP                       228.45            9.70         95.7%
 tree COPYPROP                    3.01            1.16         61.5%
 tree DCE                        11.58            4.86         58.0%
-----------------------------------------------------------------------------
Total for tree optimizers       915.49          152.41         83.3%
Total compile time             1361.17          551.07         59.5%
-----------------------------------------------------------------------------

One thing that the table doesn't show is memory consumption.  I don't
have a good way of measuring that other than watching top while the
program runs (-fmem-report tends to be way off).  For POOMA, the file
LocalPatch.ii used to cause cc1plus to grow up to 1.2Gb in core.  With
the new alias analysis, cc1plus doesn't grow above 500Mb.  Still, that's
huge, but at least I can fit it in my laptop now.


Diego.


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