public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/14042] New: C++ abstraction penalty is high in simple cases
@ 2004-02-06  7:45 tjw at omnigroup dot com
  2004-02-06  7:46 ` [Bug c++/14042] " tjw at omnigroup dot com
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-02-06  7:45 UTC (permalink / raw)
  To: gcc-bugs

The attached test case shows nearly identical loops, the only difference being that one operates on 
two objects per loop and the other just one.

The iterate_ok() function generates a nice all-register loop like:

L16:
        vaddfp v1,v13,v0
        vmaddfp v13,v1,v13,v0
        vsubfp v0,v1,v0
        bdnz L16

The iterate_bad() function generates tons of load/store operations:

L41:
        lvx v0,r9,r0
        vaddfp v1,v9,v10
        lvx v13,r9,r2
        vaddfp v12,v13,v0
        vmaddfp v9,v1,v9,v10
        stvx v1,0,r11
        vsubfp v10,v1,v10
        vsubfp v11,v12,v0
        stvx v12,0,r9
        vmaddfp v13,v12,v13,v0
        stvx v11,r9,r0
        stvx v13,r9,r2
        bdnz L41


I don't know if this is specific to Altivec, I would assume it isn't, but my real program that is getting 
clobbered by this is Altivec-based.

-- 
           Summary: C++ abstraction penalty is high in simple cases
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tjw at omnigroup dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-apple-darwin7.2.0
  GCC host triplet: powerpc-apple-darwin7.2.0
GCC target triplet: powerpc-apple-darwin7.2.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug c++/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
@ 2004-02-06  7:46 ` tjw at omnigroup dot com
  2004-02-06  7:50 ` [Bug c++/14042] C++ abstraction penalty is high in simple Altivec cases tjw at omnigroup dot com
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-02-06  7:46 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From tjw at omnigroup dot com  2004-02-06 07:46 -------
Created an attachment (id=5689)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5689&action=view)
Test case


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug c++/14042] C++ abstraction penalty is high in simple Altivec cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
  2004-02-06  7:46 ` [Bug c++/14042] " tjw at omnigroup dot com
@ 2004-02-06  7:50 ` tjw at omnigroup dot com
  2004-02-06  7:53 ` tjw at omnigroup dot com
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-02-06  7:50 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From tjw at omnigroup dot com  2004-02-06 07:49 -------
I forgot to mention that the compile line was:

$PREFIX/bin/g++ -mdynamic-no-pic -fno-exceptions -O3 -maltivec -fstrict-aliasing obj.cpp -S 
-o obj-34.s

Also, I did try this with scalar instead of vector values and the extraneous load/stores are NOT 
present, so this does look to be related to Altivec somehow.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|C++ abstraction penalty is  |C++ abstraction penalty is
                   |high in simple cases        |high in simple Altivec cases


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug c++/14042] C++ abstraction penalty is high in simple Altivec cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
  2004-02-06  7:46 ` [Bug c++/14042] " tjw at omnigroup dot com
  2004-02-06  7:50 ` [Bug c++/14042] C++ abstraction penalty is high in simple Altivec cases tjw at omnigroup dot com
@ 2004-02-06  7:53 ` tjw at omnigroup dot com
  2004-02-06  8:00 ` [Bug optimization/14042] C++ abstraction penalty is high in simple cases pinskia at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-02-06  7:53 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pessimizes-code


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (2 preceding siblings ...)
  2004-02-06  7:53 ` tjw at omnigroup dot com
@ 2004-02-06  8:00 ` pinskia at gcc dot gnu dot org
  2004-02-06 15:05 ` segher at kernel dot crashing dot org
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-06  8:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-06 08:00 -------
Confirmed, it is not just altivec which has this problem, for most cases this is fixed on the tree-ssa but 
this is not for some  reason:
Cannot scalarize variable s1 because it must live in memory
Cannot scalarize variable s2 because it must live in memory
Cannot scalarize variable MT.1660 because it must live in memory

For some reason:
  this_26 = &s1;
  T.1644_27 = this_26->p1;
  T.1645_28 = this_26->p2;

is not translated before sra which causes it not to be optimized on the tree-ssa.

Here is the inner loop on the tree-ssa, it is worse than before:
L21:
        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 L21

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|UNCONFIRMED                 |NEW
          Component|c++                         |optimization
     Ever Confirmed|                            |1
      Known to fail|                            |tree-ssa
   Last reconfirmed|0000-00-00 00:00:00         |2004-02-06 08:00:55
               date|                            |
            Summary|C++ abstraction penalty is  |C++ abstraction penalty is
                   |high in simple Altivec cases|high in simple cases
   Target Milestone|---                         |tree-ssa


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (3 preceding siblings ...)
  2004-02-06  8:00 ` [Bug optimization/14042] C++ abstraction penalty is high in simple cases pinskia at gcc dot gnu dot org
@ 2004-02-06 15:05 ` segher at kernel dot crashing dot org
  2004-02-06 16:57 ` tjw at omnigroup dot com
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at kernel dot crashing dot org @ 2004-02-06 15:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From segher at kernel dot crashing dot org  2004-02-06 15:05 -------
There is no way the compiler can tell that s1 and s2
are not actually the same object.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (4 preceding siblings ...)
  2004-02-06 15:05 ` segher at kernel dot crashing dot org
@ 2004-02-06 16:57 ` tjw at omnigroup dot com
  2004-02-09 10:52 ` segher at kernel dot crashing dot org
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-02-06 16:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From tjw at omnigroup dot com  2004-02-06 16:57 -------
s1 and s2 are different objects since they are on the stack.  'inS1' and 'inS2' could be the same 
object since they are passed by reference, but that is immaterial here since they are copied into the 
stack allocated objects and then written over with the results after the loop.  That is, inside the 
loop, only stack allocated objects are used and it should be easy to prove that they are not the 
same object.

Maybe you are saying that the compiler doesn't currently keep track of whether they are different 
objects?

Also, I believe this bug persists if you change the signature to:

void iterate_bad(State inS1, State inS2, unsigned int n)

... and what is even more interesting is that even though the function doesn't produce any useful 
work once that is done (assuming inlining takes effect) and the whole function could be replaced by 
a 'blr', it isn't (I think I only tried this on 3.4, YMMV on tree-ssa).


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (5 preceding siblings ...)
  2004-02-06 16:57 ` tjw at omnigroup dot com
@ 2004-02-09 10:52 ` segher at kernel dot crashing dot org
  2004-02-09 19:08 ` pinskia at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: segher at kernel dot crashing dot org @ 2004-02-09 10:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From segher at kernel dot crashing dot org  2004-02-09 10:52 -------
Erm, yeah.  Need more coffee.  Or learn C++.  I'll take the coffee ;-)

Maybe the compiler decided it doesn't need the temporaries s1, s2
and uses insP1,2 directly?  I can't really tell from the code, without
seeing the loop setup etc.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (6 preceding siblings ...)
  2004-02-09 10:52 ` segher at kernel dot crashing dot org
@ 2004-02-09 19:08 ` pinskia at gcc dot gnu dot org
  2004-02-20  2:54 ` dberlin at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-09 19:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-09 19:08 -------
Just a note here for  Segher, the structs should be copied before the loop and copied 
back after the loop so aliasing problems and such should not matter at all and gcc should 
optimize this code which it does for the scaler version but not on the tree level which will 
help the vector version.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (7 preceding siblings ...)
  2004-02-09 19:08 ` pinskia at gcc dot gnu dot org
@ 2004-02-20  2:54 ` dberlin at gcc dot gnu dot org
  2004-02-20  2:56 ` dberlin at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: dberlin at gcc dot gnu dot org @ 2004-02-20  2:54 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dberlin at gcc dot gnu dot org  2004-02-20 02:54 -------
tree-ssa has one memcpy call on the C version, 
The whole inner loop looks like:
L7:
    vmaddfp v13,v11,v1,v12
    vsubfp v0,v11,v12
    vaddfp v1,v1,v12
    vaddfp v11,v13,v0
    vsubfp v12,v1,v0
    vmaddfp v1,v1,v13,v0
    bdnz L7
L6:

IE best it can do.




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (8 preceding siblings ...)
  2004-02-20  2:54 ` dberlin at gcc dot gnu dot org
@ 2004-02-20  2:56 ` dberlin at gcc dot gnu dot org
  2004-03-03  5:52 ` pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: dberlin at gcc dot gnu dot org @ 2004-02-20  2:56 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dberlin at gcc dot gnu dot org  2004-02-20 02:56 -------
I should note that it generates such good code because it scalarizes the structures on tree-ssa on the C 
version, but not on the C++ version.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (9 preceding siblings ...)
  2004-02-20  2:56 ` dberlin at gcc dot gnu dot org
@ 2004-03-03  5:52 ` pinskia at gcc dot gnu dot org
  2004-03-06  4:00 ` tjw at omnigroup dot com
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-03  5:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-03 05:52 -------
This is now fixed on the tree-ssa so suspending.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |SUSPENDED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (10 preceding siblings ...)
  2004-03-03  5:52 ` pinskia at gcc dot gnu dot org
@ 2004-03-06  4:00 ` tjw at omnigroup dot com
  2004-03-06  4:08 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-03-06  4:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From tjw at omnigroup dot com  2004-03-06 04:00 -------
This still doesn't produce the same code as the C version.  I now get:

L11:
	vaddfp v0,v11,v13
	addi r2,r2,1
	vaddfp v1,v10,v12
	cmplw cr7,r2,r5
	vmaddfp v8,v0,v11,v13
	vmaddfp v6,v1,v10,v12
	vsubfp v9,v0,v13
	vsubfp v7,v1,v12
	vor v11,v8,v8
	vor v10,v6,v6
	vor v13,v9,v9
	vor v12,v7,v7
	blt+ cr7,L11


note the extra useless copies at the end of the loop.

If you'd like me to enter a new bug on this (since the title is now incorrect, I guess), just let me know.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (11 preceding siblings ...)
  2004-03-06  4:00 ` tjw at omnigroup dot com
@ 2004-03-06  4:08 ` pinskia at gcc dot gnu dot org
  2004-05-13 20:25 ` [Bug tree-optimization/14042] " pinskia at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-03-06  4:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-03-06 04:08 -------
Yes please file a new bug, the bug is that the register allocator sucks in GCC as of right now, with 
-fnew-ra (an experimental register allocator) gives:
L11:
        addi r2,r2,1
        vaddfp v1,v11,v13
        vaddfp v0,v12,v10
        cmplw cr7,r2,r9
        vmaddfp v11,v1,v11,v13
        vmaddfp v12,v0,v12,v10
        vsubfp v13,v1,v13
        vsubfp v10,v0,v10
        blt+ cr7,L11

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |SUSPENDED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (12 preceding siblings ...)
  2004-03-06  4:08 ` pinskia at gcc dot gnu dot org
@ 2004-05-13 20:25 ` pinskia at gcc dot gnu dot org
  2004-05-16 23:46 ` tjw at omnigroup dot com
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-13 20:25 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-13 11:37 -------
Fixed for 3.5.0 by the merge of the tree-ssa.




-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|SUSPENDED                   |RESOLVED
          Component|rtl-optimization            |tree-optimization
         Resolution|                            |FIXED
   Target Milestone|tree-ssa                    |3.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (13 preceding siblings ...)
  2004-05-13 20:25 ` [Bug tree-optimization/14042] " pinskia at gcc dot gnu dot org
@ 2004-05-16 23:46 ` tjw at omnigroup dot com
  2004-05-16 23:59 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: tjw at omnigroup dot com @ 2004-05-16 23:46 UTC (permalink / raw)
  To: gcc-bugs


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


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (14 preceding siblings ...)
  2004-05-16 23:46 ` tjw at omnigroup dot com
@ 2004-05-16 23:59 ` pinskia at gcc dot gnu dot org
  2004-05-17 13:30 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-16 23:59 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-15 23:39 -------
Confirmed, will be fixed by my cast pass which I will be submitting soon.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
                   |dot org                     |org
             Status|REOPENED                    |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (15 preceding siblings ...)
  2004-05-16 23:59 ` pinskia at gcc dot gnu dot org
@ 2004-05-17 13:30 ` pinskia at gcc dot gnu dot org
  2004-05-27  8:02 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-17 13:30 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-05-16 23:25 -------
Simple patch here which fixes the bug: <http://gcc.gnu.org/ml/gcc-patches/2004-05/
msg00991.html>.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (16 preceding siblings ...)
  2004-05-17 13:30 ` pinskia at gcc dot gnu dot org
@ 2004-05-27  8:02 ` pinskia at gcc dot gnu dot org
  2004-06-02  4:41 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-05-27  8:02 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.5.0                       |---


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (17 preceding siblings ...)
  2004-05-27  8:02 ` pinskia at gcc dot gnu dot org
@ 2004-06-02  4:41 ` pinskia at gcc dot gnu dot org
  2004-06-02 18:57 ` pinskia at gcc dot gnu dot org
  2004-06-02 18:57 ` cvs-commit at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-06-02  4:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-06-02 04:41 -------
Much newer and simpler patch: <http://gcc.gnu.org/ml/gcc-patches/2004-06/msg00087.html>.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (19 preceding siblings ...)
  2004-06-02 18:57 ` pinskia at gcc dot gnu dot org
@ 2004-06-02 18:57 ` cvs-commit at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-06-02 18:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-06-02 18:56 -------
Subject: Bug 14042

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	pinskia@gcc.gnu.org	2004-06-02 18:56:54

Modified files:
	gcc            : ChangeLog tree-ssa.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.dg/tree-ssa: ssa-cast-1.C ssa-sra-1.C 
	                               ssa-sra-2.C 

Log message:
	2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
	
	PR tree-optimization/14736
	* g++.dg/tree-ssa/ssa-cast-1.C: New Test.
	
	PR tree-optimization/14042
	* g++.dg/tree-ssa/ssa-sra-1.C: New Test.
	
	PR tree-optimization/14729
	* g++.dg/tree-ssa/ssa-sra-2.C: New Test.
	
	2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
	
	PR tree-optimization/14042
	PR tree-optimization/14729
	PR tree-optimization/14736
	* tree-ssa.c: Check the type which the pointer points to
	instead of the pointer types.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.3822&r2=2.3823
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&r1=2.3&r2=2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.3804&r2=1.3805
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Bug tree-optimization/14042] C++ abstraction penalty is high in simple cases
  2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
                   ` (18 preceding siblings ...)
  2004-06-02  4:41 ` pinskia at gcc dot gnu dot org
@ 2004-06-02 18:57 ` pinskia at gcc dot gnu dot org
  2004-06-02 18:57 ` cvs-commit at gcc dot gnu dot org
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-06-02 18:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-06-02 18:57 -------
Fixed now on the mainline.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |3.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14042


^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2004-06-02 18:57 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-06  7:45 [Bug c++/14042] New: C++ abstraction penalty is high in simple cases tjw at omnigroup dot com
2004-02-06  7:46 ` [Bug c++/14042] " tjw at omnigroup dot com
2004-02-06  7:50 ` [Bug c++/14042] C++ abstraction penalty is high in simple Altivec cases tjw at omnigroup dot com
2004-02-06  7:53 ` tjw at omnigroup dot com
2004-02-06  8:00 ` [Bug optimization/14042] C++ abstraction penalty is high in simple cases pinskia at gcc dot gnu dot org
2004-02-06 15:05 ` segher at kernel dot crashing dot org
2004-02-06 16:57 ` tjw at omnigroup dot com
2004-02-09 10:52 ` segher at kernel dot crashing dot org
2004-02-09 19:08 ` pinskia at gcc dot gnu dot org
2004-02-20  2:54 ` dberlin at gcc dot gnu dot org
2004-02-20  2:56 ` dberlin at gcc dot gnu dot org
2004-03-03  5:52 ` pinskia at gcc dot gnu dot org
2004-03-06  4:00 ` tjw at omnigroup dot com
2004-03-06  4:08 ` pinskia at gcc dot gnu dot org
2004-05-13 20:25 ` [Bug tree-optimization/14042] " pinskia at gcc dot gnu dot org
2004-05-16 23:46 ` tjw at omnigroup dot com
2004-05-16 23:59 ` pinskia at gcc dot gnu dot org
2004-05-17 13:30 ` pinskia at gcc dot gnu dot org
2004-05-27  8:02 ` pinskia at gcc dot gnu dot org
2004-06-02  4:41 ` pinskia at gcc dot gnu dot org
2004-06-02 18:57 ` pinskia at gcc dot gnu dot org
2004-06-02 18:57 ` cvs-commit at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).