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: unassig...@gcc.gnu.org ReportedBy: zso...@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.