[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Success running the testsuite with avrtest
From: |
Paulo Marques |
Subject: |
Re: [avr-gcc-list] Success running the testsuite with avrtest |
Date: |
Thu, 17 Jan 2008 05:31:44 +0000 |
User-agent: |
Internet Messaging Program (IMP) H3 (4.1.2) |
Quoting Paulo Marques <address@hidden>:
[...]
Although there are 66 tests that FAIL, only 51 are execution
failures, and 15 are compilation failures. These 51 failures
correspond to just 10 programs that fail to execute, with different
optimization options (-O0, -O1, etc.):
I just tried compiling these tests myself to run them one by one on
avrtest and found out that most of them fail because of 32 bit integer
size assumptions or other odities:
execute/20010122-1.c
This test uses __builtin_return_address.
execute/20060102-1.c
20060102-1.c:5: warning: right shift count >= width of type
execute/20061101-1.c
20061101-1.c:8: warning: comparison is always true due to limited range
of data type
execute/float-floor.c
This test is very sensitive to floating point implementation and
probably needs an actual 64 bit double type to work properly.
execute/pr17377.c
This test also uses __builtin_return_address.
execute/pr22493-1.c
This uses SIMD instructions.
execute/pr23135.c
pr23135.c:8: warning: integer overflow in expression
pr23135.c:8: warning: integer overflow in expression
execute/pr28651.c
pr28651.c:11: warning: large integer implicitly truncated to unsigned type
execute/pr29797-1.c
pr29797-1.c:10: warning: comparison is always true due to limited range
of data type
execute/simd-1.c
This one also uses SIMD instructions.
So we're down to the following failing reasons:
- test case assumes 32 bit integers
- test case uses __builtin_return_address
- test case uses SIMD instructions
The __builtin_return_address implementation really has a bug (at least
with gcc-4.2.2). It works if there is no prologue pushing stuff into
the stack. Otherwise it can produce code like this:
void NOINLINE *test3 (void)
{
void * temp;
temp = __builtin_return_address (0);
dummy ();
return temp;
}
000004de <test3>:
4de: 0f 93 push r16
4e0: 1f 93 push r17
4e2: ed b7 in r30, 0x3d ; 61
4e4: fe b7 in r31, 0x3e ; 62
4e6: 01 81 ldd r16, Z+1 ; 0x01
4e8: 12 81 ldd r17, Z+2 ; 0x02
4ea: 0e 94 30 01 call 0x260 ; 0x260 <dummy>
4ee: c8 01 movw r24, r16
4f0: 1f 91 pop r17
4f2: 0f 91 pop r16
4f4: 08 95 ret
The "ldd r16, Z+1" and "ldd r17, Z+2" are going to fetch the 2
registers pushed into the stack instead of the return address.
I guess I need to start testing with the gcc from SVN directly so that
I don't run into bugs that have already been fixed.
--
Paulo Marques
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
- Re: [avr-gcc-list] Success running the testsuite with avrtest, (continued)
Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/16
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Paulo Marques, 2008/01/16
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/16
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Paulo Marques, 2008/01/16
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Paulo Marques, 2008/01/16
- Re: [avr-gcc-list] Success running the testsuite with avrtest,
Paulo Marques <=
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/17
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Paulo Marques, 2008/01/17
- RE: [avr-gcc-list] Success running the testsuite with avrtest, Weddington, Eric, 2008/01/17
- Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/17
- RE: [avr-gcc-list] Success running the testsuite with avrtest, Weddington, Eric, 2008/01/17
Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/17
Re: [avr-gcc-list] Success running the testsuite with avrtest, Paulo Marques, 2008/01/17
[avr-gcc-list] Problem where R0 gets used, Andrew Hutchinson, 2008/01/18
Re: [avr-gcc-list] Problem where R0 gets used, Erik Christiansen, 2008/01/18
Re: [avr-gcc-list] Success running the testsuite with avrtest, Dmitry K., 2008/01/18