This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/36630] [4.3/4.4 Regression] ICE in vect_update_ivs_after_vectorizer
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Aug 2008 15:09:46 -0000
- Subject: [Bug tree-optimization/36630] [4.3/4.4 Regression] ICE in vect_update_ivs_after_vectorizer
- References: <bug-36630-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from rguenth at gcc dot gnu dot org 2008-08-28 15:09 -------
I still think that handling NULL from evolution_part_in_loop_num is the
correct thing to do. Even if you need to move this check to the analysis
phase.
The interesting thing is that the access function during
vect_analyze_scalar_cycles_1 is
{2, +, 1}_1
which is because after the vectorized part of the loop the prologue
remains which has a non-constant evolution start.
So with the reasoning that you analyzed the access function of the
original loop properly you can probably strip the conversion that
confuses you at just vect_update_ivs_after_vectorizer. (Or store
the relevant information during analysis where the evolution is
still simple enough)
This would fix the ICE, but I wonder if it may cause wrong code because
of mismatched types somehow.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36630