Optimizing for Space : Measurements and Possibilities for Improvement
Árpád Beszédes, Tamás Gergely, Tibor Gyimóthy,
Gábor Lóki and László Vidács
GCC's optimization for space seems to have been often neglected,
in favor of performance tuning.
With this work we aim at determining the weakpoints of GCC concerning its
optimization capability for space. We compare (1) GCC with two non-free ARM
cross-compiler toolchains, (2) how GCC evolved from release 3.2.2 to version
3.3, and (3) two runtime libraries for the Linux kernel. All tests were performed
using the C front end and for the ARM target both as standalone and as Linux
executables. The test suite is comprised of applications from well-known
benchmark suites such as SPEC and Mediabench.
An optimal combination of compiler (and linker) options with respect to minimal
code size is elaborated as well. We conclude that GCC 3.3 steadily improves
with respect to version 3.2.2 and that it is only about 11% behind a high-performance
non-free compiler. At the same time, we were able to document a number of
issues that deserve further investigation in order to improve code generation
for space.
Back