This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/58459] New: [4.9 regression] Loop invariant is not hoisted out of loop after r202525.
- From: "ysrumyan at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 18 Sep 2013 10:48:40 +0000
- Subject: [Bug tree-optimization/58459] New: [4.9 regression] Loop invariant is not hoisted out of loop after r202525.
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58459
Bug ID: 58459
Summary: [4.9 regression] Loop invariant is not hoisted out of
loop after r202525.
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ysrumyan at gmail dot com
We noticed significant performance regression on important bench from eembc2.0
suite which can be exhibit with attached test-case.
Assembly produced compiler prior to r202525 for innermost loop:
.L18:
movl %esi, %ebp
movl 8(%eax), %edx
sall %cl, %ebp
movl 12(%eax), %eax
testl %ebp, %ebx <-- p->key is hoisted out of loop
cmove %edx, %eax
movl %ecx, %edx
but assembly produced compiler after r202525 contains redundant load:
.L17:
movl %esi, %ebp
movl 8(%eax), %edx
sall %cl, %ebp
movl 12(%eax), %eax
testl %ebp, (%ebx) <-- p->key is not hoisted out of loop
cmove %edx, %eax
movl %ecx, %edx
The test-case must be compiled with -Ofast -m32 -march=atom -mtune=atom
options.