このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
coder.inline
生成されたコードで特定の関数のインライン化を制御
説明
coder.inline('always')
は、生成されたコードで現在の関数をインライン化します。coder.inline('always')
最適化命令を使用して、関数呼び出しを呼び出される関数の内容 (本文) に置き換えます。インライン化により、関数呼び出しのオーバーヘッドがなくなり、生成された C/C++ コードをさらに最適化できます。ただし、インライン化で生成される C/C++ コードは大きく、複雑になることがあります。
coder.inline('always')
命令では以下のインライン化はサポートされていません。
エントリポイント関数。
再帰関数。
parfor
ループを含む関数。parfor
ループから呼び出される関数。
coder.inline('never')
は、生成コード内の現在の関数がインライン化されるのを防ぎます。coder.inline('never')
命令は、MATLAB® ソース コードと生成コードの間のマッピングを単純化する場合に使用します。
coder.inline('never')
最適化命令では以下のインライン化は阻止されません。
空の関数。
定数出力を返す関数。
上記の状況でもインライン化を阻止するには、MATLAB コードの関数呼び出しサイトの入力で関数 coder.ignoreConst
(MATLAB Coder) を使用します。詳細については、Resolve Issue: coder.inline("never") and coder.nonInlineCall Do Not Prevent Function Inlining (MATLAB Coder)を参照してください。
coder.inline('default')
は、コード ジェネレーターに対して、内部のヒューリスティックな方法を使用して現在の関数をインライン化するかどうかを指示します。通常は、そうしたヒューリスティックな方法によって高度に最適化されたコードが生成されます。これらの最適化を微調整しなければならない場合にのみ、coder.inline
を MATLAB 関数内で明示的に使用するようにしてください。追加のガイドラインについては、ヒント (MATLAB Coder)を参照してください。
例
ヒント
codegen
(MATLAB Coder) コマンドまたはfiaccel
(Fixed-Point Designer) コマンドを使用する場合に、-O disable:inline
オプションを使用することで、すべての関数のインライン化を無効にできます。codegen
コマンドまたは MATLAB Coder™ アプリを使用して C/C++ コードを生成する場合、記述する関数に対して生成されるコードと MathWorks® 関数に対して生成されるコードでは、速度および可読性の要件に差異が生じる場合があります。生成コード ベースのこれら 2 つの部分に関するインライン化の動作を、それらの間の境界で個別に制御できる、その他のグローバル設定もあります。生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御 (MATLAB Coder)を参照してください。
拡張機能
バージョン履歴
R2011a で導入