This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Bill and Grant : [...]
I did not do tests with 2.95.x but the proceedings of the gcc summit about optimising for space seem to draw the same conclusions as your do : 3.x is better than 2.95.x (doc here : www.linux.org.uk/~ajh/gcc/ gccsummit-2003-proceedings.pdf, very interesting but for pure ARM code only)I've recently compared size/performance of an eCos application built w/ 2.95.x and with 3.2.x, and I've seen a size reduction of about 20% or so, along with a corresponding increase in performance. The two builds weren't _completely_ identical, but he differences shouldnt have been much.
One potential source is runtime libraries. ADS's library structure is pretty granular, and their linker seems to be pretty good at discarding unused code. GNU-compatible runtime libraries don't seem to be as fine-grained in their implementation as ADS, so the GNU linker isn't as helpful at keeping unused modules and/or functions out of the resulting image. Or maybe it's because the GNU linker is more simplistic, and the library architecture isn't the source of the bloat. Dunno.
Correct. I enabled such an option last Friday after my previous post and looked at the logs during the WE : 5% gain in size! This is very good news since RAM usage is really a concern on our system (the gain corresponds to around 2kb). As I stated, I will try to build newlib in such a way.If you put each function in a separate section, and turn on garbage collection in the linker, then the granularity of the linking process should be at the function level rather than at the object file level. Without those options enabled, you might end up with a fair number of un-needed library functions.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |