[ARM] [2/2] Fix DImode addressing
Jie Zhang
jie@codesourcery.com
Thu Dec 23 13:50:00 GMT 2010
On 12/23/2010 08:58 PM, Ramana Radhakrishnan wrote:
>
> Hi Jie,
>
> I'm not sure I totally understand your patch.
>
>
> On Wed, 2010-12-22 at 14:41 +0800, Jie Zhang wrote:
>> Based on Ricard's explanation, it will be good to allow larger index
>> range for DImode addressing on modern ARM chips. Like this patch does. I
>> use multiple_operation_profitable_p to decide if it's good to use LDM or
>> not. Currently multiple_operation_profitable_p is not fine tuned. In
>> future the four conditionals about "low" in
>
> Is this even going to work ? The patch didn't seem to define
> multiple_operation_profitable_p anywhere.
>
multiple_operation_profitable_p was added by Bernd 4 months ago.
>
>>
>> + if ((low != -8&& low != -4&& low != 0&& low != 4)
>> + || !multiple_operation_profitable_p (false, 2, val))
>>
>> should be moved into multiple_operation_profitable_p.
>
> Since the code is identical - why not move it in there today or is that
> what you are saying ? Ideally I think it would be better to move this in
> as a flag into the costs structure per core .
>
I'm not sure if it's good to move it into
multiple_operation_profitable_p since it's also called from some places.
Moving into it but not affecting other code needs more time thinking.
For now I just try to keep my patch as simple as possible to ease code
review. We can move it into multiple_operation_profitable_p later when
multiple_operation_profitable_p will be changed largely.
>>
>> It's still under testing. Is it OK if the result is good?
>
> What is the size or performance impact of this on something like
> SPECINT2k ? I thought that vortex or was it chess in there that uses a
> bit of DImode arithmetic ?
>
I have not done the performance benchmarking. I just did the regression
testing.
There are no regressions for arm-none-eabi target with c,c++,lto and the
default multilib. And there are no regressions found with the backported
patch for our (CodeSourcery now Mentor Graphics) internal 4.5 branch for
arm-none-linux-gnueabi target with c,c++,lto and "-march=armv7-a
-mfloat-abi=softfp -mfpu=neon".
Regards,
--
Jie Zhang
More information about the Gcc-patches
mailing list