This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize
- From: "irar at il dot ibm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Oct 2007 08:45:59 -0000
- Subject: [Bug tree-optimization/33804] ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize
- References: <bug-33804-2744@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from irar at il dot ibm dot com 2007-10-21 08:45 -------
(In reply to comment #4)
> Created an attachment (id=14370)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14370&action=view) [edit]
> Vectorization dump file
>
Thanks!
The vectorizer fails in transformation phase in function
vectorizable_operation:
if (icode == CODE_FOR_nothing)
{
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "op not supported by target.");
if (GET_MODE_SIZE (vec_mode) != UNITS_PER_WORD
|| LOOP_VINFO_VECT_FACTOR (loop_vinfo)
< vect_min_worthwhile_factor (code))
return false;
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "proceeding using word mode.");
}
During the analysis, we also get CODE_FOR_nothing, but also at that stage
LOOP_VINFO_VECT_FACTOR (loop_vinfo) > vect_min_worthwhile_factor (code)
hence we proceed using word mode.
At the end of the analysis, we change the vectorization factor (divide it by 4)
to perform pure SLP on the loop, so during the transformation phase, when we
get to the same code again, we probably get that
LOOP_VINFO_VECT_FACTOR (loop_vinfo) < vect_min_worthwhile_factor (code)
and we fail.
The idea was that we should not fail to vectorize during the transformation,
since everything was checked during the analysis, therefore, a gcc_assert was
put here.
I'll have to think how to fix this problem.
Thanks,
Ira
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33804