Everything
2.5.1 コンパイル・オプション

コンパイル・フェーズのオプションの分類と説明を以下に示します。

分類

オプション

説明

ソースオプション

-lang

ソース・ファイルをコンパイルする言語を選択します。

-include

インクルード・ファイルの取り込み先フォルダを指定します。

-preinclude

コンパイル単位の先頭にインクルードするファイルを指定します。

-define

マクロ定義を指定します。

-undefine

無効化するプリデファインド・マクロを指定します。

-message

インフォメーションレベル・メッセージを出力します。

-nomessage

抑止するインフォメーションレベル・メッセージ番号を指定します。

-change_message

コンパイラ出力メッセージレベル変更します。

-no_warning 【V2.08.00 以降】

ワーニング及びインフォメーションレベル・メッセージを抑止します。

-file_inline_path

(無効オプション) このオプションはV2.00以降では使用できません。指定しても意味を持ちません。

【V.1.02以前】 ファイル間インライン展開ファイル取り込み先フォルダの指定

-comment

コメント(/* */)のネストを許すかどうかを選択します。

-truncated_address_initializer 【V3.01.00以降】

C言語において、1, 2バイト型の外部変数をアドレスで初期化することを許します。

-check

M16C(R8C),H8(H8S,H8SX),SuperHファミリ用の既存プログラムとの互換性をチェックします。

-misra2004 【Professional版のみ】

MISRA-C:2004ルールによるソースチェックをします。

-misra2012 【Professional版のみ】 【V2.04.00以降】

MISRA-C:2012ルールによるソースチェックをします。

-ignore_files_misra 【Professional版のみ】

MISRA-C:2004、MISRA-C:2012チェック対象外のファイルを指定します。

-check_language_extension 【Professional版のみ】

拡張機能の使用によって部分抑止しているMISRA-C:2004ルールまたはMISRA-C:2012ルールのチェックを有効にします。

-misra_intermodule 【Professional版のみ】 【V3.01.00以降】

複数ファイルにまたがるMISRA-C:2012ルールによるソースチェックを行います。

オブジェクトオプション

-output

出力ファイル形式を選択します。

-noline

プリプロセッサ展開時に#lineを出力しません。

-debug

オブジェクト・ファイルにデバッグ情報を出力します。

-nodebug

オブジェクト・ファイルにデバッグ情報を出力しません。

-g_line 【V3.02.00 以降】

最適化時にソースデバッグ用の情報を強化します。

-section

変更するセクション名を指定します。

-stuff

変数のアライメントに応じたセクションに配置します。

-nostuff

変数のアライメントに応じたセクションに配置しません。

-instalign4

分岐先を4バイトで命令実行向け整合します。

-instalign8

分岐先を8バイトで命令実行向け整合します。

-noinstalign

分岐先を命令実行向け整合しません。

-nouse_div_inst

除算、剰余算にDIV,DIVU,FDIV,DDIV命令を使用しません。

-create_unfilled_area【V2.03.00以降】

.OFFSETが作る空き領域に対してデータを出力しません。

-stack_protector/-stack_protector_all 【Professional版のみ】 【V2.04.00以降】

スタック破壊検出コードを生成します。

-avoid_cross_boundary_prefetch 【V2.07.00以降】

文字列操作ライブラリ関数をストリング命令に展開する際、データプリフェッチによる4バイト境界をまたいだ読み出しを防ぎます。

-insert_nop_with_label 【V2.08.00 以降】

ローカルラベルおよびnop命令を挿入します。

-control_flow_integrity 【Professional版のみ】 【V2.08.00以降】

不正な間接関数呼び出しを検出するコードを生成します。

リストオプション

-listfile

ソース・リスト・ファイルを出力します。

-nolistfile

ソース・リスト・ファイルを出力しません。

-show

ソース・リスト・ファイルの内容を指定します。

最適化オプション

(1/2)

-optimize

最適化レベルを選択します。

-goptimize

モジュール間最適化用付加情報を出力します。

-speed

実行性能重視の最適化を実施します。

-size

コード・サイズ重視の最適化を実施します。

-loop

ループ展開の最大展開数を指定します。

-inline

自動インライン展開行います。

-noinline

自動インライン展開を行いません。

-file_inline

(無効オプション) このオプションはV2.00以降では使用できません。指定しても意味を持ちません。

【V.1.02以前】ファイル間インライン展開対象ファイルの指定

-case

switch文のコード展開方式を選択します。

-volatile

外部変数をvolatile化します。

-novolatile

外部変数をvolatile化しません。

-type_size_access_to_volatile【V3.04.00以降】

volatileを指定した変数に、変数の型のサイズでアクセスします。

-const_copy

const修飾された外部変数の定数伝播を実施します。

-noconst_copy

const宣言された外部変数の定数伝播を実施しません。

-const_div

整数型定数による除算および剰余算を変換します。

-noconst_div

整数型定数による除算および剰余算を変換しません。

-library

ライブラリ関数の実行方法を選択します。

-scope

最適化範囲を複数に分割してコンパイルします。

-noscope

最適化範囲を複数に分割しないでコンパイルします。

-schedule

パイプライン処理を考慮した命令並べ替えを行います。

-noschedule

命令並べ替えを行いません。

最適化オプション

(2/2)

-map

外部変数アクセス最適化を行います。

-smap

コンパイル単位内で定義された外部変数に対し、外部変数アクセス最適化を行います。

-nomap

外部変数アクセス最適化を行いません。

-approxdiv

浮動小数点定数除算の乗算化を行います。

-enable_register

(無効オプション) このオプションはV2.00以降では使用できません。指定しても意味を持ちません。

【V.1.02以前】register 指定変数を優先的にレジスタ割り付け

-simple_float_conv

浮動小数点型、整数型間の型変換を一部省略します。

-fpu

単精度浮動小数点処理命令を使用します。

-nofpu

単精度浮動小数点処理命令を使用しません。

-dpfpu 【V3.01.00以降】

倍精度浮動小数点処理命令を使用します。

-nodpfpu 【V3.01.00以降】

倍精度浮動小数点処理命令を使用しません。

-tfu 【V3.01.00以降】

三角関数演算器の利用方法を選択します。

-tfu_version【V3.05.00以降】

三角関数演算器のバージョンを選択します。

-nosave_tfu【V3.05.00以降】

割り込み関数に対して、三角関数演算器 (v2) の出力の退避・回復コードを生成しません。

-alias

ポインタ指示先の型を考慮した最適化を実施するかどうかを選択します。

-float_order

(無効オプション) このオプションはV2.00以降では使用できません。指定しても意味を持ちません。

【V.1.02以前】 浮動小数点式の演算順序変更の最適化を行います。

-branch_chaining 【V3.03.00 以降】

分岐命令のサイズを削減する最適化を実施します。

-nobranch_chaining 【V3.03.00 以降】

分岐命令のサイズを削減する最適化を実施しません。

-ip_optimize

大域最適化を実施します。

-merge_files

複数ソースのコンパイル結果をひとつのオブジェクトに出力します。

-whole_program

指定ソースファイルをプログラム全体と仮定して最適化を実施します。

マイコンオプション

-isa

命令セット・アーキテクチャを選択します。

-cpu

マイコン種別を選択します。

-endian

エンディアン選択します。

-round

浮動小数点定数演算の丸め方式を選択します。

-denormalize

浮動小数点定数での非正規化数の扱いを選択します。

-dbl_size

double 型、およびlong double 型の精度を選択します。

-int_to_short

int をshort に、unsigned int をunsigned short に置換します。

-signed_char

char型をsigned char型として扱います。

-unsigned_char

char型をunsigned char型として扱います。

-signed_bitfield

ビットフィールドの符号をsignedで解釈します。

-unsigned_bitfield

ビットフィールドの符号をunsignedで解釈します。

-auto_enum

列挙型データのサイズを自動選択するかどうかを選択します。

-bit_order

ビットフィールドメンバの並び順を選択します。

-pack

構造体メンバ、クラスメンバのアライメント数を1にします。

-unpack

構造体メンバ、クラスメンバのアライメント数をデータのアライメントに従います。

-exception

例外処理機能を有効にします。

-noexception

例外処理機能を無効にします。

-rtti

C++実行時型情報(dynamic_cast、typeid)を有効または、無効を選択します。

-fint_register

高速割り込み関数でのみ使用する汎用レジスタを選択します。

-branch

分岐幅のサイズを選択します。

-base

ROM,RAM用ベースレジスタ選択します。

-patch

CPUタイプ特有の問題を回避するかどうかを選択します。

-pic

PIC機能を有効にします。

-pid

PID機能を有効にします。

-nouse_pid_register

PIDレジスタをコード生成に使用しません。

-save_acc

割り込み関数でアキュムレータ を退避・回復します。

アセンブル・リンクオプション

-asmcmd

asrxのオプションのサブコマンドファイルを指定します。

-lnkcmd

rlinkのオプションのサブコマンドファイルを指定します。

-asmopt

asrxのオプションを指定します。

-lnkopt

rlinkのオプションを指定します。

その他オプション

-logo

コピーライトを出力します。

-nologo

コピーライトを出力しません。

-euc

入力プログラムの文字コードをEUCコードと解釈します。

-sjis

入力プログラムの文字コードをSJISコードと解釈します。

-latin1

入力プログラムの文字コードをISO-Latin1コードと解釈します。

-utf8

入力プログラムの文字コードをUTF-8コードと解釈します。

-big5

入力プログラムの文字コードをBIG5コードと解釈します。

-gb2312

入力プログラムの文字コードをGB2312コードと解釈します。

-outcode

出力アセンブリ言語ファイルの文字コードを選択します。

-subcommand

コマンドオプションを取り込むファイルを指定します。