Everything

 

-Xswitch


switch文のコード出力形式を指定します。

[指定形式]

-Xswitch=type

 

-

省略時解釈

コンパイラがswitch文ごとに最適な出力形式を 自動的に選択します。

[詳細説明]

-

switch文のコード出力形式を指定します。

-

typeに指定可能なものを以下に示します。
これ以外のものを指定した場合は,エラーとなります。

ifelse

caseラベルを1つずつ比較する形式で出力します。case文の数が少ないときに,本項目を指定します。

binary

バイナリ・サーチ形式で出力します。

バイナリ・サーチ・アルゴリズムに用いて合致するcase文を探します。

ラベル数が多いときに本項目を選択すると,どのcase文も同じくらいの速さで見つけることができます。

table

テーブル・ジャンプ形式で出力します。

case文の値を基にインデックス化したテーブルを参照し,switch文の値によりcaseラベルを選択して処理を行います。

どのcase文にも同じくらい速く分岐します。

ただし,case値が連続していないときは無駄な領域ができます。

また,caseラベルの最大値と最小値の差が8192を超える場合は,本オプションを無視して,switch文ごとに最適な出力形式を 自動的に選択します。

 

-

typeを省略した場合は,エラーとなります。

[使用例]

-

switch文のコードに対して,バイナリ・サーチ形式で出力します。

>ccrh -Xswitch=binary -Xcommon=rh850 main.c