This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Compilation performance comparison of 3.5.0 and TreeSSA treeson MICO sources as requested in: [tree-ssa] Merge status 2004-05-03
- From: Diego Novillo <dnovillo at redhat dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Sat, 08 May 2004 11:50:53 -0400
- Subject: Re: Compilation performance comparison of 3.5.0 and TreeSSA treeson MICO sources as requested in: [tree-ssa] Merge status 2004-05-03
- Organization: Red Hat Canada
- References: <10405081026.AA17987@vlsi1.ultra.nyu.edu>
On Sat, 2004-05-08 at 06:26, Richard Kenner wrote:
> Mostly because of the breaking down of expressions into small trees,
> which are friendlier to the RTL expanders. That's the reason we have a
> tree recombination pass at the end of tree optimization.
>
> Sure, but my question is why do that breaking down and recombining with -O0?
>
It's all part of the separation between front ends and the rest of the
compiler. We now have only one RTL expansion pass, and it doesn't
understand anything but GIMPLE.
Java
C
C++ --> GENERIC --> GIMPLE --> RTL
ObjC
Fortran
Now, we have not worked on making the RTL expanders work efficiently
with GIMPLE (that's why we have the tree recombination pass). However,
we would like to explore the idea of going into SSA even at O0 and not
leave SSA form until RTL generation time (and perhaps even take it
further than that). If the RTL expanders were to operate on SSA form,
maybe the tree recombination pass would not be necessary. But this is
all speculation ATM.
A quick check of -O0 in a typical bootstrap cycle shows that tree-ssa
generates 29% more RTL than mainline (based on 'wc -l *.rtl').
Diego.