public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence
@ 2007-06-17 16:28 tprince at computer dot org
2007-06-17 16:29 ` [Bug fortran/32380] " tprince at computer dot org
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: tprince at computer dot org @ 2007-06-17 16:28 UTC (permalink / raw)
To: gcc-bugs
gfortran -O2 -fcray-pointer -ftree-vectorize -ftree-vectorizer-verbose=2 -c -v
unal.f
There are several reports of "unsupported unaligned store" or "can't determine
dependence between .." The loops which report "unaligned store" vectorize OK
when taken in isolation.
The reports of "can't determine dependence" appear to refer to the use of
multiple sections of the same array. These sections cannot overlap unless
there is a subscript range violation. Even if there were such a violation, it
could be taken care of by changing the order.
--
Summary: reports "unaligned store" and can't determine dependence
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tprince at computer dot org
GCC build triplet: x86_64-unknown-linux-gnu
GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/32380] reports "unaligned store" and can't determine dependence
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
@ 2007-06-17 16:29 ` tprince at computer dot org
2007-07-11 14:50 ` [Bug fortran/32380] misaligned stores don't get vectorized irar at il dot ibm dot com
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: tprince at computer dot org @ 2007-06-17 16:29 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from tprince at computer dot org 2007-06-17 16:29 -------
Created an attachment (id=13725)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13725&action=view)
source code test case
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/32380] misaligned stores don't get vectorized
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
2007-06-17 16:29 ` [Bug fortran/32380] " tprince at computer dot org
@ 2007-07-11 14:50 ` irar at il dot ibm dot com
2007-07-15 18:31 ` dorit at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: irar at il dot ibm dot com @ 2007-07-11 14:50 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from irar at il dot ibm dot com 2007-07-11 14:50 -------
I don't get any dependence test failures on current mainline. I think they were
solved by Zdenek's rewrite of data-refs' analysis, since I can still see those
failures on autovect-branch (with old data-refs' analysis):
unal.f:222: note: not vectorized: can't determine dependence between
csfsavloc.savfrc[D.2175_919] and csfsavloc.savfrc[D.2388_922]
unal.f:159: note: not vectorized: can't determine dependence between
aux01loc.fm11[D.2175_330] and aux01loc.fm11[D.2175_330]
unal.f:172: note: not vectorized: can't determine dependence between
aux01loc.ft11[D.2175_439] and aux01loc.ft11[D.2175_439]
On the mainline unal.f:222 gets vectorized now, and unal.f:159 and unal.f:172
are not vectorized because unsupported unaligned stores:
unal.f:222: note: LOOP VECTORIZED.(get_loop_exit_condition
unal.f:198: note: LOOP VECTORIZED.
unal.f:209: note: not vectorized: unsupported unaligned store.
unal.f:159: note: not vectorized: unsupported unaligned store.
unal.f:172: note: not vectorized: unsupported unaligned store.
unal.f:138: note: not vectorized: unsupported unaligned store.
unal.f:127: note: not vectorized: unsupported unaligned store.
With loop distribution we could vectorize these loops using peeling to handle
misaligned stores (multiple stores make peeling for alignment insufficient
here).
Misaligned stores support is on the top of our TODO list in Wiki (see
http://gcc.gnu.org/wiki/VectorizationTasks)...
I am adding "missed-optimization" keyword and changing the summary.
Thanks,
Ira
--
irar at il dot ibm dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |irar at il dot ibm dot com
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Keywords| |missed-optimization
Last reconfirmed|0000-00-00 00:00:00 |2007-07-11 14:50:36
date| |
Summary|reports "unaligned store" |misaligned stores don't get
|and can't determine |vectorized
|dependence |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/32380] misaligned stores don't get vectorized
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
2007-06-17 16:29 ` [Bug fortran/32380] " tprince at computer dot org
2007-07-11 14:50 ` [Bug fortran/32380] misaligned stores don't get vectorized irar at il dot ibm dot com
@ 2007-07-15 18:31 ` dorit at gcc dot gnu dot org
2007-07-15 18:43 ` tprince at computer dot org
2007-07-15 19:02 ` dorit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: dorit at gcc dot gnu dot org @ 2007-07-15 18:31 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from dorit at gcc dot gnu dot org 2007-07-15 18:31 -------
> With loop distribution we could vectorize these loops using peeling to handle
> misaligned stores (multiple stores make peeling for alignment insufficient
> here).
wonder what the loop-distribution pass in the graphite branch can do with these
loops (http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01130.html)
--
dorit at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |spop at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/32380] misaligned stores don't get vectorized
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
` (2 preceding siblings ...)
2007-07-15 18:31 ` dorit at gcc dot gnu dot org
@ 2007-07-15 18:43 ` tprince at computer dot org
2007-07-15 19:02 ` dorit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: tprince at computer dot org @ 2007-07-15 18:43 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from tprince at computer dot org 2007-07-15 18:43 -------
The arrays in this example all have compatible alignment. This is one of the
advantages many compilers see in the use of the "old-fashioned" block COMMON.
In the usual case lft==1 all arrays in COMMON are aligned, with the size
declarations given here. So it is undesirable to split the loop to handle
alignment.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/32380] misaligned stores don't get vectorized
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
` (3 preceding siblings ...)
2007-07-15 18:43 ` tprince at computer dot org
@ 2007-07-15 19:02 ` dorit at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: dorit at gcc dot gnu dot org @ 2007-07-15 19:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from dorit at gcc dot gnu dot org 2007-07-15 19:02 -------
(In reply to comment #4)
> The arrays in this example all have compatible alignment. This is one of the
> advantages many compilers see in the use of the "old-fashioned" block COMMON.
> In the usual case lft==1 all arrays in COMMON are aligned, with the size
> declarations given here. So it is undesirable to split the loop to handle
> alignment.
ah, ok. so the real issue here is to make the vectorizer notice that all these
accesses have the same alignment (we have a way in the vectorizer to mark
accesses that have the same alignment even if the alignment itself is unknown).
to be continued...
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32380
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-07-15 19:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-17 16:28 [Bug fortran/32380] New: reports "unaligned store" and can't determine dependence tprince at computer dot org
2007-06-17 16:29 ` [Bug fortran/32380] " tprince at computer dot org
2007-07-11 14:50 ` [Bug fortran/32380] misaligned stores don't get vectorized irar at il dot ibm dot com
2007-07-15 18:31 ` dorit at gcc dot gnu dot org
2007-07-15 18:43 ` tprince at computer dot org
2007-07-15 19:02 ` dorit at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).