Ticket #118 (new enhancement)
GCC optimizations
| Reported by: | jg | Owned by: | dgilmore |
|---|---|---|---|
| Priority: | normal | Milestone: | 9.1.0-cancelled |
| Component: | distro | Version: | |
| Keywords: | rel-8.2.0:? | Cc: | cscott, rsavoye, bmcarnes, mstone, jg, dgilmore, bernie, andresambrois |
| Action Needed: | never set | Verified: | no |
| Deployments affected: | Blocked By: | ||
| Blocking: |
Description
GCC has a mechanism for setting the flags used by default for a particular installation of a compiler (the gcc specs file). For those people doing self-hosted development, it would indeed be good to craft a Geode GX GCC specific configuration file for GCC to use. By default, it uses a build-in spec file. To see the built in defaults, type "gcc -dumpspecs". See section 3.15 of the gcc manual.
Knowing what flags are "best" obviously has value to us, though there are always judgement calls about setting default options.
And there may be specific packages where there is enough performance to be gained to bother to compile with specific flags for OLPC (e.g. codecs and similar CPU bound codes). Those we should handle separately from this trac bug.
Beyond this, what is probably more important in the long term is for people who are friendly with gcc to work on a march=geode implementation. The code scheduling for floating point in particular could be improved to give significant performance gain, as it differs enough from other x86 implementations to be significant.
Also, if you have an FP intensive application, the performance difference between single and double precision is larger than typical of other x86 systems. Bothering to ensure single is used where feasible in those particular applications may be helpful.


