8.165 --retain=option

コンパイラによって実行される最適化を制限します。

構文

--retain=option
option は、以下のいずれかになります。
fns
使用されていない関数が削除されるのを防ぎます。
inlinefns
使用されていないインライン関数が削除されるのを防ぎます。
noninlinefns
使用されていない非インライン関数が削除されるのを防ぎます。
paths
a||b から a|b への変換など、パス削除による最適化が行われるのを防ぎます。これにより、MCDC(Modified Condition Decision Coverage)テストがサポートされます。
calls
たとえばインライン展開または末尾呼び出しによって、呼び出しが削除されるのを防ぎます。
calls:distinct
たとえばクロスジャンプ(つまり、共通末尾パスマージ)によって、呼び出しがマージされるのを防ぎます。
libcalls
たとえばインライン展開によって、ライブラリ関数への呼び出しが削除されるのを防ぎます。
データ
データが削除されるのを防ぎます。
rodata
読み出し専用データが削除されるのを防ぎます。
rwdata
読み出し-書き込みデータが削除されるのを防ぎます。
data:order
データが並べ替えられるのを防ぎます。
option を指定せずに --retain を使用すると、エラーになります。

使用法

このオプションは、検証、デバッグ、カバレッジテストなどの実行時に役立てることができます。それ以外のケースでは、特に必要ありません。
このオプションを使用すると、コードのサイズとパフォーマンスに悪影響が生じることがあります。
関連する参考文書
10.42 __attribute__((nomerge)) 関数属性
10.45 __attribute__((notailcall)) 関数属性
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.