This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa] Speed up tree-ssa-ccp
- 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: 16 Jun 2003 17:35:18 -0400
- Subject: Re: [tree-ssa] Speed up tree-ssa-ccp
- Organization: Red Hat Canada
- References: <200306161520.h5GFKrHo021500@speedy.slc.redhat.com>
On Mon, 2003-06-16 at 11:20, law@redhat.com wrote:
> In message <1055776018.3322.69.camel@frodo.toronto.redhat.com>, Diego Novillo w
> rites:
> >Cool. I was working along similar lines, but also included regular
> >statements in the check.
> I'd expect the gains to be much smaller for regular statements because
> they can only be evaluated a set number of times (bounded by the number
> of real operands associated with the statement).
>
> PHI nodes are different in that they can be evaluated many times (once for
> each incoming edge to the block). While most of the time blocks only have
> a few incoming edges, EH and other odd flow control beasts (like computed
> gotos) can break that assumption and make reevaluation of PHIs expensive.
>
> But if it's showing good results above and beyond PHIs, then go for it.
>
Yeah. On the two cases from Gerald and Richard G., the differences are
noticeable. For
http://www.tat.physik.uni-tuebingen.de/~rguenth/FieldCentering.cmpl.ii.gz, adding regular statements and the other tidbits result in CCP being 12 times faster than only considering PHI nodes, shaving about 23 seconds from the total compilation time. This test is also nasty for PHI node insertion. We spend 20% of the total compile time inserting PHI nodes. I'm looking at this next.
For http://gcc.gnu.org/PR8361, we get a speedup of 2 in the CCP pass
(about 2 secs), over what we got with the patch to test PHI nodes. In
this test case, the times are more spread out. The only passes that
seem to stand out are the parser (10%) and CSE (11%).
Diego.