This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Jun 2005 05:34:28 -0000
- Subject: [Bug tree-optimization/22157] New: [4.0/4.1 Regression] struct copying code gen
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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