This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Why does loop-35.c store motion testcase fail for AVR?
- From: Andy H <hutchinsonandy at aim dot com>
- To: GCC Development <gcc at gcc dot gnu dot org>
- Date: Mon, 16 Jun 2008 21:31:21 -0400
- Subject: Why does loop-35.c store motion testcase fail for AVR?
Help !
gcc.dg/tree-ssa/loop-35.c is a test that looks for "Executing store motion" in dump-tree-lim-details
As the load and store of memory location should be pulled out of loop.
This works for 3 out of 4 tescases. But on AVR target test3() will fail.
The only difference between this and test1() is that index is unsigned long rather than int.
Index of char or int work fine.
Why????
Even considering pointers and int are only HImode, I cant see why a long (SImode) should affect this.
void test3(unsigned long b)
{
unsigned i;
/* And here. */
for (i = 0; i < 100; i++)
{
arr[b+8].X += i;
arr[b+9].X += i;
}
}