This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/37150] basic-block vectorization misses some unrolled loops
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 27 Mar 2013 12:26:40 +0000
- Subject: [Bug middle-end/37150] basic-block vectorization misses some unrolled loops
- Auto-submitted: auto-generated
- References: <bug-37150-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37150
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org
|gnu.org |
Summary|vectorizer misses some |basic-block vectorization
|loops |misses some unrolled loops
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> 2013-03-27 12:26:40 UTC ---
Confirmed - this should be handled by BB vectorization.
t.f90:1: note: === vect_analyze_slp ===
t.f90:1: note: Failed to SLP the basic block.
t.f90:1: note: not vectorized: failed to find SLP opportunities in basic block.
a smaller, but still sensible, testcase would be appreciated.
For now BB analysis stops at
coef_x = {};
because it cannot find a vector type for it. If we fix that we end up
with
t.f90:1: note: === vect_slp_analyze_data_ref_dependences ===
t.f90:1: note: can't determine dependence between coef_x[_2719] and coef_x
t.f90:1: note: not vectorized: unhandled data dependence in basic block.
because dependence analysis appearantly does not handle. If we fix that
we end up with
t.f90:1: note: can't determine dependence between coef_x[_2719] and coef_x[0]
t.f90:1: note: not vectorized: unhandled data dependence in basic block.
so the issue boils down to the fact that we first do all dependence checks
rather than look for SLP opportunities and only check dependences within
the basic-block region the SLP tree covers.