This is the mail archive of the 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]

[PING] [patch] PR tree-optimizations/26969 (vectorizer)

Please refer to the following link for the posted patch,

For reference repeated below.

[patch] PR tree-optimizations/26969 (vectorizer)
      From: Victor Kaplansky <VICTORK at il dot ibm dot com>
      To: gcc-patches at gcc dot gnu dot org
      Cc: OLGA at il dot ibm dot com
      Date: Thu, 8 Jun 2006 00:23:33 +0300
      Subject: [patch] PR tree-optimizations/26969 (vectorizer)

The testcase attached below ICEs when compiled with -funswitch-loops.
This happens because (vect_do_peeling_for_alignment) was designed in an
assumption that latch is empty. Thus it doesn't handle PHIs in latches.
(vect_analyze_loop_form) checks the latch is empty, but doesn't check that
of its PHIs is empty as well.

Ideally, I'd think, it would be nice to enhance loop peeling to handle
PHIs in latches.

This patch modify (vect_analyze_loop_form) to avoid vectorization of loops
with non-empty list of PHIs in the latch.

Bootstrapped and tested on the vectorizer testcases on powerpc-linux.

ok for mainline?

-- Victor

:ADDPATCH SSA (vectorizer):

        PR tree-optimization/26969
        * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
         witch an empty list of PHIs.

        PR tree-optimizations/26969
        * gcc.dg/vect/vect.exp: Compile tests prefixed with
        with -funswitch-loops.
        * gcc.dg/vect/unswitch-loops-pr26969.c: New test.

(See attached file: pr26969.patch.txt)(See attached file:

Attachment: pr26969.patch.txt
Description: Text document

Attachment: unswitch-loops-pr26969.c
Description: Binary data

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