河野真治 @ 琉球大学情報工学です。

In article <YAS.03Oct24054914@kirk.is.tsukuba.ac.jp>, yas@is.tsukuba.ac.jp (Yasushi Shinjo) writes
> インライン展開した方が得かしない方が得か、なにか予測できるん
> ですかね。全部のコードが一様に実行されるということなら、まあ
> なんとかなりそうな気もしますけど。コードの実行回数の予測が難
> しいですよね。

たぶん、こういう話は、inline ってのを知ると「全部にinlineを
付ける」って言う学生のためにあるんだと思う。

本当に早くなったかどうか実測しろっていう良い機会にはなる
んだけど。

>前に試したのは、SPARC のレジス
> タ・ウインドウの効果を調べるというものです。答えはローカル変
> 数がウインドウに入るくらいの展開した方がいいということだった
> と思いました。レジスタ・ウインドウがあると手続き呼出しが苦に
> はならないはずなんだけれど、割込みがあったりスレッドのコンテ
> キスト切替えがなどの外乱があると、フラッシュされるし。

レジスタウィンドは「必ずシフトする」ので、いつかウィンドの
フラッシュルーチンを呼ばないといけない。レジスタウィンドは
スパースな構造を持っているのでフラッシュが遅い。

なのでサブルーチンコールを減らすinlineは効果があります。

inline で欲しいのは、本来はプログラム変換でのspecialization
であって、サブルーチンオーバヘッドではないはず。Specialiation
は通常のサブルーチンコールでも出来るので、inlineは、
なにか間違った選択だったと思います。

---
Shinji KONO @ Information Engineering, University of the Ryukyus, 
河野真治 @ 琉球大学工学部情報工学科,