[Bug rtl-optimization/71275] New: [7 regression] Performance drop after r235660 on x86-64 in 32-bit mode.
ysrumyan at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed May 25 14:04:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71275
Bug ID: 71275
Summary: [7 regression] Performance drop after r235660 on
x86-64 in 32-bit mode.
Product: gcc
Version: 7.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: ---
Regression can be seen at attached test-case. In the tail block of innermost
loop redundant fill was added:
before r235660 r235660
.L3:
addl $1, %esi addl $1, %esi
addl %eax, %ebx addl %eax, %ebx
movw %bp, (%edi,%ecx) movl 44(%esp), %edx
movswl %si, %ebp movswl %si, %eax
cmpl (%esp), %ebp cmpl %edi, %eax
jl .L6 movw %bp, (%edx,%ecx)
jl .L6
In result we got up to 14% slow-down on one important benchmark.
It is clear that it is not profitable to keep value of loop upper bound on
register instead of the address base.
More information about the Gcc-bugs
mailing list