This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] fix SPEC ICE - violating loop-closed-form in the vectorizer
- From: Dorit Naishlos <DORIT at il dot ibm dot com>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: Diego Novillo <dnovillo at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 5 Apr 2005 10:25:00 +0300
- Subject: Re: [patch] fix SPEC ICE - violating loop-closed-form in the vectorizer
- Reply-to:
- Sensitivity:
> Hello,
>
> > On Thu, Mar 31, 2005 at 06:50:23PM +0200, Dorit Naishlos wrote:
> >
> > > * tree-flow.h (loop_closed_split_exit_edge): New function
> > > declaration.
> > > * tree-ssa-loop-manip.c (loop_closed_split_exit_edge):
> > > New function.
> > > * tree-vect-analyze.c (vect_analyze_loop_form): Call
> > > loop_closed_split_exit_edge instead of loop_split_edge_with.
> > >
> > OK.
>
> tree-ssa-loop-manip.c:split_loop_exit_edge?
>
exactly what I need, thanks! (I was grepping for "loop_split"...)
Here's the updated patch to use the existing utility.
Bootstrapped and tested the vectorizer tests + SPEC on powerpc-darwin.
I'll go ahead and commit since the original patch was approved.
thanks,
dorit
Changelog:
* tree-vect-analyze.c (vect_analyze_loop_form): Call
split_loop_exit_edge instead of loop_split_edge_with.
Index: tree-vect-analyze.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-vect-analyze.c,v
retrieving revision 2.15
diff -c -3 -p -r2.15 tree-vect-analyze.c
*** tree-vect-analyze.c 29 Mar 2005 16:09:58 -0000 2.15
--- tree-vect-analyze.c 4 Apr 2005 08:51:16 -0000
*************** vect_analyze_loop_form (struct loop *loo
*** 2436,2442 ****
edge e = loop->single_exit;
if (!(e->flags & EDGE_ABNORMAL))
{
! loop_split_edge_with (e, NULL);
if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
fprintf (vect_dump, "split exit edge.");
}
--- 2436,2442 ----
edge e = loop->single_exit;
if (!(e->flags & EDGE_ABNORMAL))
{
! split_loop_exit_edge (e);
if (vect_print_dump_info (REPORT_DETAILS, loop_loc))
fprintf (vect_dump, "split exit edge.");
}
> Zdenek