This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/17019] New: THUMB -O1: bad code generated for simple for loop
- From: "danfuzz at milk dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Aug 2004 16:42:53 -0000
- Subject: [Bug target/17019] New: THUMB -O1: bad code generated for simple for loop
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Compiling the following with -O1 for thumb results in bogus code being generated:
void badness(int a)
{
void zorch(int b);
int b;
for (b = -1; b < a + 1; b++) {
zorch(b);
}
}
In particular, it looks like the loop prologue code is screwed up and will cause the loop to always be
skipped.
Here's how I configured and built the compiler:
$ tar -xjvf gcc-core-3.4.0.tar.bz2
$ cd gcc-3.4.0
$ ./configure --prefix=/usr/local/armdev --target=arm-elf --with-newlib --enable-languages=c
The following lines were uncommented in gcc/config/arm/t-arm-elf:
MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES += normal interwork
MULTILIB_EXCEPTIONS += *mapcs-26/*mthumb-interwork*
$ make
$ sudo make install
In case it matters, I'm currently using binutils-2.15.
I will try this with 3.4.1 shortly.
--
Summary: THUMB -O1: bad code generated for simple for loop
Product: gcc
Version: 3.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danfuzz at milk dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: arm-unknown-elf
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17019