コンパイラ最適化レベルとデバッグビュー

コンパイラによって正確な最適化を実行できるかどうかは、どの最適化レベルを選択するかだけでなく、パフォーマンスとコードサイズのどちらを最適化しようとしているかによっても決まります。

コンパイラでは、以下の最適化レベルがサポートされています。

-O0

最小限の最適化。デバッグビューに支障をきたさない単純な最適化が実行されます。

デバッグ機能が有効になっている場合に、このオプションを選択すると、最良のデバッグビューが実現します。

-O1

制限された最適化。

デバッグ機能が有効になっている場合に、このオプションを選択すると、十分満足できるデバッグビューと優れたコード密度を実現できます。

-O2

高度な最適化。これがデフォルトの最適化レベルです。

デバッグ機能が有効になっている場合に、このオプションを選択すると、デバッグビューは満足度の低いものになる可能性があります。

-O3

最大限の最適化。利用可能な最適化の中で最も強力な形式のものです。このオプションを指定すると、マルチファイルのコンパイルがデフォルトで有効になり、コマンドラインで複数のファイルを指定できるようになります。

デバッグ機能が有効になっている場合に、このオプションを選択すると、質の低いデバッグビューになります。

最適化は、オブジェクトコードとソースコード間のマッピングに影響を与えます。そのため、-Ospace-Otime での最適化レベルの選択によって、デバッグビューの質は左右されます。

オプション -O0 は、単純なデバッグビューが必要な場合に最良のオプションです。通常、-O0 を選択すると、Executable and Linkable Format(ELF)イメージのサイズが 7 ~ 15% 増大します。デバッグテーブルのサイズを縮小するには、--remove_unneeded_entities オプションを使用します。

Show/hide関連項目

Copyright © 2010 ARM. All rights reserved.ARM DUI 0472BJ
Non-ConfidentialID011811