--
What|Removed |Added
Status|REOPENED|NEW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
11:13 ---
The patch you identified makes RTL store motion work. Before the patch
gcse-sm just did almost nothing at all.
You can't blame a patch for fixing a pass.
Closing this as won't fix. Lets focus on
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru
2005-01-23 14:36 ---
(In reply to comment #8)
Closing this as won't fix. Lets focus on PR19581 instead.
Two notes:
1) tree-outof-ssa does not coalesce variables in this case:
g.c:
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-23
15:24 ---
Well since this is more than just a 4.0.0 regressions lets reopen it.
Basically lsm was rewritten for 3.4.0
and it causes this regression which means lsm is not good at all.
--
What
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
15:41 ---
This is *not* a gcc 4.0 regression. The 4.0 problem is PR19581.
But Andrew prefers keeping multiple bugs open for the same regression,
apparently.
--
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-23
15:43 ---
(In reply to comment #11)
This is *not* a gcc 4.0 regression. The 4.0 problem is PR19581.
What about 3.4.0?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
15:51 ---
g.c: g.c.t65.optimized:
void g () |
{ | bb
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
15:56 ---
Clearly it *is* a 3.4 regression.
But the subject also includes 4.0. And that's not right because we have
disabled gcse store motion for gcc 4.0. The bug for 4.0 is PR19581 and
that is just a different
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru
2005-01-23 18:31 ---
(In reply to comment #13)
What exactly are you expecting to be coalesced in this case, if I may ask?
I am expecting all of D.1129 and D.1131 to be coalesced so this:
D.1129 = r[0] + r[2];
--- Additional Comments From dberlin at gcc dot gnu dot org 2005-01-23
19:07 ---
Subject: Re: [3.4/4.0 Regression] missed load/store
motion
On Sun, 23 Jan 2005, belyshev at depni dot sinp dot msu dot ru wrote:
--- Additional Comments From belyshev at depni dot sinp dot msu
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
19:11 ---
Ehm, does it really think they conflict now, or is it simply not replacing
a reg with a load?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580
--- Additional Comments From steven at gcc dot gnu dot org 2005-01-23
19:23 ---
For x86 I get this:
g:
movlr+8, %edx
movlr, %eax
addl%edx, %eax
movl%eax, r
addlr+4, %eax
movl%eax, r+4
addl%edx,
--- Additional Comments From belyshev at depni dot sinp dot msu dot ru
2005-01-23 19:51 ---
(In reply to comment #18)
I'm not sure what you think the missed optimization is here. You will have
to show what you want at the assembly level, and explain why you think this
is a
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-23
04:38 ---
(In reply to comment #5)
Caused by this patch:
And I was right this was caused by the store motion rewrite.
http://gcc.gnu.org/ml/gcc-patches/2003-02/msg02090.html
--
What|Removed
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-23
04:39 ---
Note this is not a register allocator problem any more but a missed
optimization.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19580
15 matches
Mail list logo