非常に高い頻度で呼び出される CRC 計算関数があります。inline
私はそれを作ってみたのですでに宣言しました__attribute((hot))__
が、それが何かを買うかどうかはわかりません. にしようと考えていfastcall
ます。
gcc docsによると、
fastcall Intel 386 では、fastcall 属性により、コンパイラは最初の引数 (整数型の場合) をレジスタ ECX に渡し、2 番目の引数 (整数型の場合) をレジスタ EDX に渡します。後続のおよびその他の型付き引数は、スタックに渡されます。呼び出された関数は、引数をスタックからポップします。引数の数が可変の場合、すべての引数がスタックにプッシュされます。
fastcall
入力パラメータはスタックにプッシュするのではなく、レジスタを介して送信されるため、本質的に高速になります。を使用するとinline
、コンパイラは関数呼び出しを関数の本体に置き換えます。
質問は、 evenfastcall
と一緒に使用inline
すると意味がありますか?