This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/48334] New: [4.7 Regression] gcc.target/i386/pr39445.c FAILs with -fira-algorithm=priority
- From: "zsojka at seznam dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 29 Mar 2011 13:50:44 +0000
- Subject: [Bug rtl-optimization/48334] New: [4.7 Regression] gcc.target/i386/pr39445.c FAILs with -fira-algorithm=priority
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48334
Summary: [4.7 Regression] gcc.target/i386/pr39445.c FAILs with
-fira-algorithm=priority
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: zsojka@seznam.cz
Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu
Created attachment 23802
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23802
reduced testcase
Output:
$ gcc -O -fira-algorithm=priority testcase.c
$ ./a.out
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400537 in foo (a1=<value optimized out>, a2=..., a3=..., a4=...,
a5=..., a6=..., a7=..., a8=..., b1=1, b2=2, b3=3, b4=4, b5=5,
b6=6, b7=-1, y=...) at testcase.c:8
8 {
(gdb) disassemble
Dump of assembler code for function foo:
0x0000000000400534 <+0>: xorps %xmm0,%xmm0
=> 0x0000000000400537 <+3>: movaps %xmm0,0x10(%rsp)
0x000000000040053c <+8>: movlps 0x10(%rsp),%xmm0
0x0000000000400541 <+13>: movlps %xmm0,0x10(%rsp)
0x0000000000400546 <+18>: movlps 0x18(%rsp),%xmm0
0x000000000040054b <+23>: movlps %xmm0,0x18(%rsp)
0x0000000000400550 <+28>: movaps 0x10(%rsp),%xmm0
0x0000000000400555 <+33>: retq
End of assembler dump.
(gdb) i r rsp
rsp 0x7fffffffde28 0x7fffffffde28
The problem is unaligned access.
As in PR48331, the code generated by priority allocator is much worse than with
CB's one. The code with both allocators was the same in r171626.