フィボナッチ数列の再帰処理が最適化でとても速い理由

とりあえず、アセンブルしてみました。

 g++ -S -o ***.0s ***.cpp
 g++ -O2 -S -o ***.2s ***.cpp

で、ふたつのファイルのGASをのぞいてみると...
最適化ありの方がちょっと長くなっている…
というか、ループになっている。

ちゃんと吟味したわけではないので、絶対とは言えないけど、
Super Technique 講座〜再帰関数の技
原因はこれかなぁ。

末端再帰関数にあてはまるでしょ。