Rockbox mail archiveSubject: Re: arrays & pointers
Re: arrays & pointers
From: BlueChip <cs_bluechip_at_webtribe.net>
Date: Mon, 03 Jan 2005 23:28:27 +0000
At 22:51 03/01/2005, you wrote:
>Wow. What compiler are you using?
afaik, the same version as the other RockBox devs ...In fact, when I
created the RockBox DevKit v3 I recall including a more recent version of
the sh-1 gcc (recalled due to a problem it caused when it over-optimised
the grey-scale lib functions) ...I know that at least two core devs
followed me in the upgrade (obviously one of those being Jens) - so I guess
we are all having the same problems.
And yes, I agree, the compiler SHOULD be doing that - but I have to date
found several major bugs in gcc, so oversights such as optimising array
access really doesn't surprise me.
> This looks like an easy compiler optimisation to me, so I'd be amazed
> that you'd need to manually do something like this (i.e. put the pointer
> into a local variable and do accesses through that rather than
> dereference the array more than once). I mean, seriously, this is what
> compilers are *for*.
>----- Original Message ----- From: "BlueChip" <cs_bluechip_at_webtribe.net>
>To: "Rockbox development" <rockbox_at_cool.haxx.se>
>Sent: Monday, January 03, 2005 8:34 PM
>Subject: arrays & pointers
>>Just saw this go in...
>>using a pointer instead of array dereferencing saves ~250 bytes
>> From my work on the card games library ...I discovered that arrays are
>> probably THE most expensive thing for our compiler. If you are going to
>> reference an element in array even just twice, it is memory efficient to
>> create a pointer to that element and use the pointer instead.
>>Given the _excessive_ efficiency of it, I guess it is also faster as well!
>>If you're going to access the pointer several times, you might even like
>>to stick a "register" in front of it for extra speed :)
Received on 2005-01-04