--- Comment #11 from pinskia at gcc dot gnu dot org 2006-07-22 13:58
---
Fixed.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Status|NEW
--- Comment #10 from sayle at gcc dot gnu dot org 2006-07-21 13:22 ---
Subject: Bug 28283
Author: sayle
Date: Fri Jul 21 13:22:31 2006
New Revision: 115644
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=115644
Log:
PR middle-end/28283
* expmed.c (expand_shift):
--- Comment #9 from uwe at netbsd dot org 2006-07-20 03:27 ---
(In reply to comment #8)
Author: sayle
Date: Wed Jul 19 05:13:56 2006
New Revision: 115578
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=115578
Log:
PR middle-end/28283
* expmed.c
--- Comment #8 from sayle at gcc dot gnu dot org 2006-07-19 05:14 ---
Subject: Bug 28283
Author: sayle
Date: Wed Jul 19 05:13:56 2006
New Revision: 115578
URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=115578
Log:
PR middle-end/28283
* expmed.c (expand_shift):
--- Comment #7 from amylaar at gcc dot gnu dot org 2006-07-07 13:50 ---
(In reply to comment #3)
When I disable the offending code (by altering add_cost[DImode] at the right
moment), I get the right result for little endian. However, compiling for
big endian gives wrong code:
--- Comment #1 from amylaar at gcc dot gnu dot org 2006-07-06 19:08 ---
This patch has added code that is nonsentical when the operation can be
synthesized cheaply in a narrower mode:
r83956 | sayle | 2004-07-01 05:27:09 +0100 (Thu, 01 Jul 2004) | 6 lines
* expmed.c
--- Comment #2 from roger at eyesopen dot com 2006-07-06 19:17 ---
Investigating... I suspect that the SH backend's rtx_costs are parameterized
incorrectly, such that a 64-bit shift by the constant 32, looks to be at least
32 times more expensive than a 64-bit addition. The middle-end
--- Comment #3 from amylaar at gcc dot gnu dot org 2006-07-06 19:30 ---
When I disable the offending code (by altering add_cost[DImode] at the right
moment), I get the right result for little endian. However, compiling for
big endian gives wrong code:
_expand64:
mov #0,r5
--- Comment #4 from amylaar at gcc dot gnu dot org 2006-07-06 19:32 ---
(In reply to comment #2)
Investigating... I suspect that the SH backend's rtx_costs are parameterized
incorrectly, such that a 64-bit shift by the constant 32, looks to be at least
32 times more expensive than a
--- Comment #5 from roger at eyesopen dot com 2006-07-06 19:47 ---
No the rtx_costs for a DImode shift really are wrong. The use of the constant
1 in sh.c:shift_costs instructs the middle-end to avoid using DImode
shifts at all costs. The semantics of rtx_costs is that it is
--- Comment #6 from joern dot rennecke at st dot com 2006-07-06 19:59
---
Subject: Re: SuperH: Very unoptimal code generated for 64-bit ints
roger at eyesopen dot com wrote:
--- Comment #5 from roger at eyesopen dot com 2006-07-06 19:47 ---
No the rtx_costs for a DImode
11 matches
Mail list logo