[Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases

tjw at omnigroup dot com gcc-bugzilla@gcc.gnu.org
Sun May 16 23:46:00 GMT 2004


------- 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



More information about the Gcc-bugs mailing list