coder.inline
生成されたコードで現在の関数のインライン化を制御する
説明
coder.inline(
は、option
)option
の指定に従って、生成された C/C++ コードにおける現在の関数のインライン化を制御します。
coder.inline("always")
は、コード ジェネレーターに対して、生成されたコードで、関数呼び出しを呼び出される関数の内容 (本文) に置き換えるように指示します。coder.inline("never")
は、生成コードで現在の関数がインライン化されるのを防ぎます。coder.inline("default")
は、コード ジェネレーターに対して、内部のヒューリスティックな方法を使用して現在の関数をインライン化するかどうかを指示します。
インライン化により、関数呼び出しのオーバーヘッドがなくなり、生成されたコードをさらに最適化できますが、生成されるコードは大きく、複雑になることがあります。一方、インライン化を防ぐと、MATLAB® コードと生成コード間のマッピングを単純化できます。既定では、コード ジェネレーターは、内部のヒューリスティックな方法を使用して現在の関数をインライン化するかどうかを判定します。通常は、そうしたヒューリスティックな方法によって高度に最適化されたコードが生成されます。coder.inline
最適化命令は、これらの最適化を微調整する必要がある場合にのみ、MATLAB 関数で明示的に使用します。
コード ジェネレーターのインライン化動作を個々の呼び出しサイトで制御するには、coder.inlineCall
と coder.nonInlineCall
を使用します。
例
入力引数
ヒント
codegen
(MATLAB Coder) コマンドまたはfiaccel
(Fixed-Point Designer) コマンドを使用する場合に、-O disable:inline
オプションを使用することで、すべての関数のインライン化を無効にできます。作成した関数から生成された C/C++ コードと、MATLAB 関数から生成された C/C++ コードでは、速度と読みやすさの要件が異なる場合があります。追加のグローバル設定を使用すると、生成されたコード ベースのこれらの 2 つの部分のインライン化を制御できます。生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御 (MATLAB Coder)を参照してください。
拡張機能
バージョン履歴
R2011a で導入参考
coder.inlineCall
| coder.nonInlineCall
トピック
- 生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御 (MATLAB Coder)
- 生成された C/C++ および MEX コードの最適化 (MATLAB Coder)
- Resolve Issue: coder.inline("never") and coder.nonInlineCall Do Not Prevent Function Inlining (MATLAB Coder)