Everything

-optimize


最適化リンケージエディタ(rlink)・オプション / 最適化オプション

[指定形式]

-optimize[= <サブオプション>[,…]]
<サブオプション> : {SYmbol_delete | SAMe_code | SHort_format | Branch | SPeed | SAFe}

 

-

省略時解釈

optimizeです。

[詳細説明]

-

コンパイル、アセンブル時にgoptimizeオプションを指定したファイルに対して最適化を行います。

-

サブオプションがない場合は、すべての最適化を実行します。
-optimize=symbol_delete,same_code,short_format,branch と同じ意味を持ちます。

-

-optimize=speedは、オブジェクトスピード低下を招く可能性のある最適化以外を実行します。
-optimize=symbol_delete,short_format,branch と同じ意味を持ちます。

-

-optimize=safeは、変数や関数の属性によって制限される可能性のある最適化以外を実行します。
-optimize=short_format,branch と同じ意味を持ちます。

-

その他のサブオプションが意味する最適化の内容は、次の表の通りです。

表 2.18

optimizeオプションのサブオプション一覧

サブオプション

意 味

最適化対象

プログラム注1

RXC

RXA

symbol_delete

1度も参照のない変数/関数を削除します。必ずコンパイル 時に#pragma entryを指定するか、rlinkでentryオプションを指定してください。

×

same_code

複数の同一命令列をサブルーチン化します。

×

short_format

ディスプレースメント/イミディエートのコードサイズを短縮可能な場合、コードサイズがより小さくなる命令に置き換えます。

branch

プログラムの配置情報に基づいて、分岐命令サイズを最適化します。

symbol_delete以外の他の最適化項目を実行すると、指定の有無に関わらず必ず実行します。

注意 1.

RXC: RXファミリ用C/C++プログラム、RXA: RXファミリ用アセンブリプログラム

 

[備考]

-

form={object|relocate|library}またはstrip指定時、本オプションは無効です。

-

プログラム内に#pragma entryで実行開始関数を指定、または実行開始アドレス(entry)を指定していない場合、optimize=symbol_deleteは無効になります。