« 年を取るとC++が難しい | Main | Hardware2.0 »

2007.08.06

再帰判定

はじめてのにきで、素直に感動。

int is_tail_opt() {
return __builtin_return_address(1) != __builtin_return_address(2);
}

普通は呼び出された結果のスタックフレームが同じである事を調べるのに、1つ前の呼び出しが違うことを判断基準にしているのか。脱力っぷりがすごい。

そして、cygwinのgccでは、-O2でも末尾最適化されなかった。orz。

|

« 年を取るとC++が難しい | Main | Hardware2.0 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack


Listed below are links to weblogs that reference 再帰判定:

« 年を取るとC++が難しい | Main | Hardware2.0 »