Mercurial > hg > Papers > 2011 > nobu-prosym
changeset 76:a4d16779fd1e
modify explanation of GCC
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 03 Jan 2012 21:42:31 +0900 |
parents | 454ddda8d306 |
children | 2697e09f6ce9 |
files | presen/index.html |
diffstat | 1 files changed, 45 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/index.html Tue Jan 03 21:13:11 2012 +0900 +++ b/presen/index.html Tue Jan 03 21:42:31 2012 +0900 @@ -239,6 +239,7 @@ </ul> </div> <!-- PAGE --> +<!-- <div class="slide"> <h1>GCC:Generic Tree</h1> <li>Generic Treeではソースコードの内容が FUNCTION_TYPE, CALL_EXPR, MODIFY_EXPR 等と言った形で表される。</li> @@ -265,10 +266,11 @@ </table> <p class="center"><small>Generic Treeでの表現</small></p> </div> +--> <!-- PAGE --> <div class="slide"> <h1>GCC:Generic Tree</h1> - <li>それぞれの命令はSTATEMENT_LISTでまとめて保持される。</li> + <li><small>CALL_EXPRE、MODIFY_EXPR等といった表現で扱われる。</small></li> <table width=100% border=1> <tr> <td class="center"><small>ソースコード</small></td> @@ -287,10 +289,8 @@ </pre> </small> </td> - <td> - <p class="center"> - <img src="./pix/STATEMENT_LIST.png" style="height: 6em;"> - </p> + <td style="margin-left:auto; margin-right:auto; text-align: center;"> + <img src="./pix/STATEMENT_LIST.png" style="height: 7em;"> </td> </tr> </table> @@ -314,7 +314,9 @@ <li>末尾除去:Tail Call Elimination(TCE)</li> <li>レジスタによる引数渡し(fastcall属性の付与)</li> <li>環境付き継続</li> +<!-- <li>__rectype の実装</li> +--> </ul> </div> <!-- PAGE --> @@ -1030,6 +1032,44 @@ </div> <!-- PAGE --> <div class="slide"> + <h1>Micro-Cとの比較</h1> + <li>Micro-C,GCC-4.4とGCC-4.6のCbCコンパイラでコンパイルしたプログラムの実行の速度</li> + <table width=100% class="center"> + <td> + <img src="./pix/mac_conv.png"> + </td> + <td> + <img src="./pix/linux_conv.png"> + </td> + </table> + <li>GCC版の最適化無しの場合、引数を全て一時変数に代入するという処理が入る。 + その為に明らかに遅くなっていることが分かる。</li> + <li>だがGCCの最適化有りの場合はMicro-C版よりも早い。</li> + </div> + <!-- PAGE --> + <div class="slide"> + <h1>まとめ</h1> + <ul> + <li>今回GCC版CbCコンパイラのアップデートを行った。</li> + <li>TCEにかかる判定の部分と環境付き継続の実装の修正を行った。 + <br>おかげで、以前より楽な管理ができる実装にすることができた。</li> + <li>後は環境付き継続の最適化の問題の修正とselftypeの実装を行う。</li> + <li>全ての実装を終えたらGCC版CbCコンパイラの実装はアップデートを行なっていくだけとなる。</li> + </ul> + </div> + <!-- PAGE --> + <div class="slide"> + <h1>今後の予定</h1> + <ul> + <li>CbCを用いたプログラムの作成</li> + <ul> + <li>CbCによるタスクマネージャの作成</li> + </ul> + <li>llvmへのCbCの実装</li> + </ul> + </div> + <!-- PAGE --> + <div class="slide"> <h1>CbCの機能の拡張:__rectype の実装</h1> <li>通常、関数の引数に関数ポインタを渡した際は以下の様に使われる。</li> <small> @@ -1081,44 +1121,6 @@ </ul> </div> <!-- PAGE --> - <div class="slide"> - <h1>Micro-Cとの比較</h1> - <li>Micro-C,GCC-4.4とGCC-4.6のCbCコンパイラでコンパイルしたプログラムの実行の速度</li> - <table width=100% class="center"> - <td> - <img src="./pix/mac_conv.png"> - </td> - <td> - <img src="./pix/linux_conv.png"> - </td> - </table> - <li>GCC版の最適化無しの場合、引数を全て一時変数に代入するという処理が入る。 - その為に明らかに遅くなっていることが分かる。</li> - <li>だがGCCの最適化有りの場合はMicro-C版よりも早い。</li> - </div> - <!-- PAGE --> - <div class="slide"> - <h1>まとめ</h1> - <ul> - <li>今回GCC版CbCコンパイラのアップデートを行った。</li> - <li>TCEにかかる判定の部分と環境付き継続の実装の修正を行った。 - <br>おかげで、以前より楽な管理ができる実装にすることができた。</li> - <li>後は環境付き継続の最適化の問題の修正とselftypeの実装を行う。</li> - <li>全ての実装を終えたらGCC版CbCコンパイラの実装はアップデートを行なっていくだけとなる。</li> - </ul> - </div> - <!-- PAGE --> - <div class="slide"> - <h1>今後の予定</h1> - <ul> - <li>CbCを用いたプログラムの作成</li> - <ul> - <li>CbCによるタスクマネージャの作成</li> - </ul> - <li>llvmへのCbCの実装</li> - </ul> - </div> - <!-- PAGE --> </div> </body> </html>