[Bug rtl-optimization/19240] New: runtime performance regression in floating point heavy code, x86/SSE
tbptbp at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Jan 3 13:13:00 GMT 2005
I'm seeing a significant runtime performance regression (>15%) with snapshots
following gcc-4.0-20041205; as far as i can see there's some issues when the
register pressure builds up: in later versions the fpu gets involved when former
version didn't.
The >15% figure comes from larger application (a raytracer), branch predictions
also changed (but i've fixed that) so i'm reasonably sure the problem is what's
demonstrated in the attached testcase.
Switches: -march=k8 -mfpmath=sse -O3 -ffast-math -fomit-frame-pointer
with gcc-4.0-20041205:
[snip]
4010f4: movss (%ecx,%esi,4),%xmm0
4010f9: movss (%eax,%ebx,4),%xmm5
4010fe: movss (%eax,%esi,4),%xmm7
401103: mulss %xmm5,%xmm1
401107: movss (%ecx,%ebx,4),%xmm4
40110c: movss %xmm0,(%esp)
401111: mulss %xmm4,%xmm2
401115: movaps %xmm3,%xmm0
401118: subss (%ecx,%edx,4),%xmm6
40111d: addss (%eax,%edx,4),%xmm1
401122: mulss (%esp),%xmm3
401127: mulss %xmm7,%xmm0
40112b: subss %xmm2,%xmm6
40112f: xorps %xmm2,%xmm2
401132: addss %xmm0,%xmm1
401136: subss %xmm3,%xmm6
40113a: divss %xmm1,%xmm6
40113e: mulss %xmm6,%xmm7
401142: comiss 0x0(%ebp),%xmm6
401146: mulss %xmm6,%xmm5
40114a: addss (%esp),%xmm7
with gcc-4.0-20050102:
[snip]
4010ff: movss (%ecx,%esi,4),%xmm0
401104: movss (%eax,%ebx,4),%xmm5
401109: movss (%eax,%esi,4),%xmm7
40110e: mulss %xmm5,%xmm1
401112: movss (%ecx,%ebx,4),%xmm4
401117: movss %xmm0,0x4(%esp)
40111d: mulss %xmm4,%xmm2
401121: movaps %xmm3,%xmm0
401124: flds (%ecx,%edx,4)
401127: addss (%eax,%edx,4),%xmm1
40112c: mulss 0x4(%esp),%xmm3
401132: fsubrs 0xc(%edi)
401135: mulss %xmm7,%xmm0
401139: addss %xmm0,%xmm1
40113d: fstps (%esp)
401140: movss (%esp),%xmm6
401145: subss %xmm2,%xmm6
401149: xorps %xmm2,%xmm2
40114c: subss %xmm3,%xmm6
401150: divss %xmm1,%xmm6
401154: mulss %xmm6,%xmm7
401158: comiss 0x0(%ebp),%xmm6
40115c: mulss %xmm6,%xmm5
401160: addss 0x4(%esp),%xmm7
--
Summary: runtime performance regression in floating point heavy
code, x86/SSE
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tbptbp at gmail dot com
CC: gcc-bugs at gcc dot gnu dot org
GCC host triplet: cygwin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19240
More information about the Gcc-bugs
mailing list