« 年を取ると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

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/16027201

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

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