This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
- From: "tjw at omnigroup dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 May 2004 23:23:51 -0000
- Subject: [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
- References: <20040206074537.14042.tjw@omnigroup.com>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From tjw at omnigroup dot com 2004-05-15 23:23 -------
This actually looks worse now. Taking the original obj.cpp file and compiling with a fresh checkout of
mainline after the merge of tree-ssa, I get the following for iterate_ok:
L4:
vaddfp v0,v13,v1
addi r9,r1,-96
vmaddfp v13,v0,v13,v1
stvx v0,r9,r0
vsubfp v1,v0,v1
bdnz L4
Note that this used to have no memory operations in the inner loop and now it looks like its
repetitively storing the same vector to the stack.
Then, for iterate_bad I get:
L16:
addi r10,r1,-144
vaddfp v1,v9,v10
lvx v0,r10,r0
lvx v13,r10,r2
vaddfp v12,v13,v0
stvx v1,r10,r11
vmaddfp v9,v1,v9,v10
vsubfp v10,v1,v10
vsubfp v11,v12,v0
stvx v12,r10,r9
vmaddfp v13,v12,v13,v0
stvx v11,r10,r0
stvx v13,r10,r2
bdnz L16
This is still chock full of unneeded memory operations.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042