public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen
@ 2005-06-23  5:34 pinskia at gcc dot gnu dot org
  2005-06-23  5:35 ` [Bug tree-optimization/22157] " pinskia at gcc dot gnu dot org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-23  5:34 UTC (permalink / raw)
  To: gcc-bugs

Take the following code:
struct s
{
  short t;
  short y1;
};

void f(struct s *x, struct s *y)
{
  struct s t = *x;
  *y = t;
}

In 3.4.0, we produced:
_f:
        lwz r0,0(r3)
        stw r0,0(r4)
        blr
but in 4.0.0 and above:
_f:
        lhz r2,2(r3)
        lha r0,0(r3)
        sth r2,2(r4)
        sth r0,0(r4)
        blr

I am starting to think we should use VIEW_CONVERT_EXPR in SRA and store it into a type which is the 
same as the mode if the mode is not BKL_MODE (RTL mode by the way) and we don't access the 
temporary variable's fields.  That would fix PR 22156 also.  Maybe I can look into doing this.

-- 
           Summary: [4.0/4.1 Regression] struct copying code gen
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org,rth at gcc dot gnu dot
                    org
OtherBugsDependingO 22156
             nThis:


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
@ 2005-06-23  5:35 ` pinskia at gcc dot gnu dot org
  2005-06-23 19:49 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-23  5:35 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.0.2


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
  2005-06-23  5:35 ` [Bug tree-optimization/22157] " pinskia at gcc dot gnu dot org
@ 2005-06-23 19:49 ` pinskia at gcc dot gnu dot org
  2005-07-04 10:26 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-23 19:49 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-23 19:49 -------
I have a fix, it does what I recommended.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-06-23 19:49:02
               date|                            |


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
  2005-06-23  5:35 ` [Bug tree-optimization/22157] " pinskia at gcc dot gnu dot org
  2005-06-23 19:49 ` pinskia at gcc dot gnu dot org
@ 2005-07-04 10:26 ` pinskia at gcc dot gnu dot org
  2005-09-14 17:35 ` pinskia at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-04 10:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-04 10:26 -------
I am no longer working on this, this is a much harder problem than I sugested.  This is basically the 
same as PR 18268.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
  BugsThisDependsOn|                            |18268
         AssignedTo|pinskia at gcc dot gnu dot  |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-07-04 10:26 ` pinskia at gcc dot gnu dot org
@ 2005-09-14 17:35 ` pinskia at gcc dot gnu dot org
  2005-09-15  9:46 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-14 17:35 UTC (permalink / raw)
  To: gcc-bugs



-- 
Bug 22157 depends on bug 18268, which changed state.

Bug 18268 Summary: structure copy propagation not done
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18268

           What    |Old Value                   |New Value
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE

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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-09-14 17:35 ` pinskia at gcc dot gnu dot org
@ 2005-09-15  9:46 ` rguenth at gcc dot gnu dot org
  2005-09-15 14:00 ` pinskia at gcc dot gnu dot org
  2005-09-15 14:27 ` pinskia at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-09-15  9:46 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rguenth at gcc dot gnu dot org  2005-09-15 09:46 -------
Can you elaborate on why the VIEW_CONVERT_EXPR experiment failed and perhaps
attach the patch you tried?  Or does using VIEW_CONVERT_EXPR just expose that
we don't do structure propagation?

-- 


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-09-15  9:46 ` rguenth at gcc dot gnu dot org
@ 2005-09-15 14:00 ` pinskia at gcc dot gnu dot org
  2005-09-15 14:27 ` pinskia at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-15 14:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-15 13:59 -------
(In reply to comment #3)
> Can you elaborate on why the VIEW_CONVERT_EXPR experiment failed and perhaps
> attach the patch you tried?  Or does using VIEW_CONVERT_EXPR just expose that
> we don't do structure propagation?

VCE failed because it causes some missed optimizations and really just exposed the fact we don't have 
structure copy prop.

-- 


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


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

* [Bug tree-optimization/22157] [4.0/4.1 Regression] struct copying code gen
  2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-09-15 14:00 ` pinskia at gcc dot gnu dot org
@ 2005-09-15 14:27 ` pinskia at gcc dot gnu dot org
  6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-09-15 14:27 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-15 14:27 -------
I am just going to mark this one as a dup of bug 22156, because it is the same problem, just different 
testcases.

*** This bug has been marked as a duplicate of 22156 ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE


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


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

end of thread, other threads:[~2005-09-15 14:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-06-23  5:34 [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen pinskia at gcc dot gnu dot org
2005-06-23  5:35 ` [Bug tree-optimization/22157] " pinskia at gcc dot gnu dot org
2005-06-23 19:49 ` pinskia at gcc dot gnu dot org
2005-07-04 10:26 ` pinskia at gcc dot gnu dot org
2005-09-14 17:35 ` pinskia at gcc dot gnu dot org
2005-09-15  9:46 ` rguenth at gcc dot gnu dot org
2005-09-15 14:00 ` pinskia at gcc dot gnu dot org
2005-09-15 14:27 ` pinskia 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).