コンパイラーにより最適化されたマシンコードはコールスタックを保持しますが、次のいずれかまたは両方によって、関数の境界が変更される場合があります。
インライン: コンパイラーは、コールサイトで呼び出される関数の命令を生成し、通常、この命令をコールサイトの周囲のほかの命令とマージすることで、呼び出しを完全に排除します。
アウトライン: コンパイラーは、ソース中に明示的に存在しない関数を作成します。例えば、スレッドを使用して異なる反復を並列に実行するコードを生成するために、ループ本体を関数に変更したり、共有関数を 1 つ作成して、ソース中の類似するいくつかの箇所を置き換えます。
コンパイラーからデバッガーに渡される情報によっては、インライン呼び出しはコールスタックに表示されないことがあります。アウトライン呼び出しは表示され、その元のコードに関係付けられます。ほとんどの場合、コンパイラーによって付けられた関数名がデバッガーに渡されます。