From: Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
To: gcc@gcc.gnu.org
Subject: Simple loops not interchanged?
Date: Fri, 10 Dec 2004 15:36:00 -0000 [thread overview]
Message-ID: <Pine.LNX.4.44.0412101616530.4584-100000@alwazn.tat.physik.uni-tuebingen.de> (raw)
Hi!
I expected -ftree-loop-linear to exchange loops in
double foo(double *a)
{
int i,j;
double r = 0.0;
for (i=0; i<8; ++i)
for (j=0; j<8; ++j)
r += a[j*8+i];
return r;
}
but it tells me (regardless of loop order) that
"Won't transform loop. Optimal transform is the identity transform"
which I cannot believe, obviously.
From further experiments, if I don't pass a as a function parameter,
but make its declaration globally available, the transform succeeds.
The main difference in tree dumps before the transformation attempt
is the data access:
<L1>:;
D.1129_12 = j_4 * 8;
D.1130_13 = i_3 + D.1129_12;
- D.1131_14 = (unsigned int) D.1130_13;
- D.1132_15 = D.1131_14 * 8;
- D.1133_16 = (double *) D.1132_15;
- D.1134_18 = D.1133_16 + a_17;
- D.1135_19 = *D.1134_18;
+ D.1131_15 = a[D.1130_13];
r_6 = r_5 + D.1131_15;
j_17 = j_4 + 1;
if (N_7 > j_17) goto <L16>; else goto <L3>;
which is just D.1131_15 = a[D.1130_13] in case of the global. Note
that is the difference starting from the generic tree dump.
What's going wrong here?
Richard.
--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
next reply other threads:[~2004-12-10 15:36 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-10 15:36 Richard Guenther [this message]
2004-12-10 16:21 ` Andrew Pinski
2004-12-10 16:39 ` Daniel Berlin
2004-12-10 16:34 ` Daniel Berlin
2004-12-12 3:58 ` [autovect][PATCH]: " Daniel Berlin
2004-12-12 17:59 ` Devang Patel
2004-12-12 18:02 ` Daniel Berlin
2004-12-13 9:46 ` Sebastian Pop
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.44.0412101616530.4584-100000@alwazn.tat.physik.uni-tuebingen.de \
--to=rguenth@tat.physik.uni-tuebingen.de \
--cc=gcc@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).