This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [autovect] [patch] complete-unrolling pass before the vectorizer
- From: "Steven Bosscher" <stevenb dot gcc at gmail dot com>
- To: "Revital1 Eres" <ERES at il dot ibm dot com>
- Cc: "Ayal Zaks" <ZAKS at il dot ibm dot com>, "Dorit Nuzman" <DORIT at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org, "Victor Kaplansky" <VICTORK at il dot ibm dot com>, rguenther at suse dot de
- Date: Tue, 20 Mar 2007 08:34:20 +0100
- Subject: Re: [autovect] [patch] complete-unrolling pass before the vectorizer
- References: <200703192310.21549.steven@gcc.gnu.org> <OF13FFF1FC.87903836-ONC22572A4.00263752-C22572A4.0028A615@il.ibm.com>
On 3/20/07, Revital1 Eres <ERES@il.ibm.com> wrote:
> Why do you need pass_ccp before pass_store_ccp? Doesn't pass_store_ccp
> do at least the propagations that a normal CCP pass would do? That
> pass_ccp looks like redundant work to me. Can you explain why you had
> to schedule it there?
As constant propagation optimization is not applied on vectorized code
we saw that it is highly effective to preform aggressive CCP phase before
the vectorizer (normal CCP + store CCP). This is the case when a nested
loop collapse into an outer loop and the outer loop get vectorized.
Yes, but store CPP == normal CPP + CCP for stores. Store CCP is not a
separate pass, it is just normal CCP on steroids. You are doing normal
CCP twice in a row.
Do you have a test case that shows different code if you remove the
pass_ccp before the pass_store_ccp?
Gr.
Steven