This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Speedup alias analysis [patch]
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: 24 Jun 2003 00:22:30 -0400
- Subject: Re: [tree-ssa] Speedup alias analysis [patch]
- Organization: Red Hat Canada
- References: <200306232205.h5NM5Lcb014963@speedy.slc.redhat.com>
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.