[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-22 Thread pinskia at gcc dot gnu dot org
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-21 Thread sayle at gcc dot gnu dot org
--- 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):

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-19 Thread uwe at netbsd dot org
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-18 Thread sayle at gcc dot gnu dot org
--- 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):

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-07 Thread amylaar at gcc dot gnu dot org
--- 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:

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread amylaar at gcc dot gnu dot org
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread roger at eyesopen dot com
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread amylaar at gcc dot gnu dot org
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread amylaar at gcc dot gnu dot org
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread roger at eyesopen dot com
--- 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

[Bug middle-end/28283] SuperH: Very unoptimal code generated for 64-bit ints

2006-07-06 Thread joern dot rennecke at st dot com
--- 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