[Bug rtl-optimization/67206] New: Redundant spills in simple copy loop for 32-bit x86 target
ysrumyan at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Aug 13 14:46:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67206
Bug ID: 67206
Summary: Redundant spills in simple copy loop for 32-bit x86
target
Product: gcc
Version: 6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ysrumyan at gmail dot com
Target Milestone: ---
For attached simple test-case we can see strange spills to stack, namely
for (i=0; i<n; i++)
out[j * n + i] = in[j * n + i];
.L9:
movdqa (%eax), %xmm0
addl $1, %edx
movdqu %xmm0, (%ecx)
addl $16, %eax
movdqa %xmm0, 32(%esp) ?? Redundant
addl $16, %ecx
movl %eax, 32(%esp) ?? Redundant
cmpl 52(%esp), %edx
movl %ecx, 48(%esp) ?? Redundant
jb .L9
Another issue is that loop distribution is not recognized such loop and memmove
loop. Note that this is reproduced with 4-9 compiler.
More information about the Gcc-bugs
mailing list