This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] lno branch merge - vectorizer patch #5


On Wed, 22 Sep 2004 12:17:16 +0200 , Dorit Naishlos  wrote:

> > ! else
> > !       {
> > !         /* We need only one loop entry for unknown loop bound
support.  */
> > !         if (loop->num_entries != 1 || !loop->pre_header)
> > !           {
> > !             if (vect_debug_stats (loop) || vect_debug_details (loop))
> > !             fprintf (dump_file,
> > !                    "not vectorized: more than one loop entry.");
> > !             return NULL;
> > !           }
> > !       }

> don't we want to check for this always? I think we rely on there being a
single entry even when the loop bound is > simple.

> Also applies to:

> > !   if (LOOP_VINFO_NITERS_KNOWN_P (loop_vinfo)
> > !       && LOOP_VINFO_INT_NITERS (loop_vinfo) % vectorization_factor !=
0)
> >       {
> > !       /* In this case we have to generate epilog loop, that
> > !        can be done only for loops with one entry edge.  */
> > !       if (LOOP_VINFO_LOOP (loop_vinfo)->num_entries != 1
> > !         || !(LOOP_VINFO_LOOP (loop_vinfo)->pre_header))
> > !       {
> > !         if (vect_debug_stats (loop) || vect_debug_details (loop))
> > !           fprintf (dump_file, "not vectorized: More than one loop
preheader.");
> > !         return false;
> > !       }
> >      }

When developing this transformation, I considered only checks
the transformation requires. I preserved the vectorizer checks as they
were.
All other comments are considered in the patch below.

New vectoried loops in the vectorizer testcases:
testcase 64: 3 loops instead of 1 loop.
testcase 66: 3 loops instead of 2 loop.
testcase 68: 4 loops instead of 2 loop.
testcase 69: 4 loops instead of 2 loop.

(in addition to testcases already mentioned:
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01104.html
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01894.html)

(See attached file: ulb_and_peeling.txt)

OK for mainline?

thanks,
olga


Attachment: ulb_and_peeling.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]