組み込み PowerPC システムの実行可能ファイルのサイズが 128Kb に制限されています。-Os
残念ながら、サイズを最適化するオプションを使用すると、コンパイラのバグ (-Os
未定義の参照などによりリンクが失敗する_restgpr_30_x
) が原因で機能しませんが、-O[123]
すべてが正常にリンクされます。これは gcc 4.8.1 host=i86、target=powerpc-wrs-vxworks の場合です。
私の次のアイデアは、さまざまな最適化オプションを選択的に使用することです。しかし、これらのオプションのうち、実行時間ではなくコード サイズを削減するのはどれでしょうか? いくつかのオプションを単独で使用し続けたところ、 -O2 に加えて
-fno-caller-saves
-fno-cse-follow-jumps
-fno-hoist-adjacent-loads
-fno-inline-small-functions
-fno-optimize-sibling-calls
-fno-peephole2
-fno-reorder-functions
-fno-rerun-cse-after-loop
-fno-tree-vrp
-fno-reorder-blocks
-fno-tree-vect-loop-version
使用するとコードサイズが縮小されます。実験よりも体系的なアプローチはありますか? GCC のドキュメントにはさまざまなオプションが記載されていますが、それらが実行時間の高速化やコード サイズの縮小を目的としているかどうかについては言及されていません。