Mercurial > hg > Papers > 2012 > nobu-thesis
changeset 44:1d830d6fc30b draft
commit
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 Feb 2012 09:55:14 +0900 |
parents | 8539cd84106e |
children | bf8db1c89618 |
files | presen/cbc.md presen/presentation.html |
diffstat | 2 files changed, 76 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/presen/cbc.md Wed Feb 29 07:02:44 2012 +0900 +++ b/presen/cbc.md Wed Feb 29 09:55:14 2012 +0900 @@ -130,23 +130,6 @@ --- -Gnu Compiler Collection (GCC) -======== -<li>GCC: オープンソースのコンパイラ群</li> -<li>ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。</li> -<li>GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。</li> -<table width=100%> - <caption>GCC のアセンブラ言語出力までの流れ</caption> - <td style="margin:auto; text-align:center;"> - <img src="./pix/ir.png" style="height:15em"> - </td> -</table> -<li>ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。</li> -<li>この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。</li> - ---- - - CbC の実装 : 軽量継続 ======== <li>CbC-GCC の軽量継続は最適化の1つ, <font color=red>Tail Call Elimination(末尾除去)</font>により実装されている.</li> @@ -348,6 +331,26 @@ --- + +Gnu Compiler Collection (GCC) +======== +<li>GCC: オープンソースのコンパイラ群</li> +<li>ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。</li> +<li>GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。</li> +<table width=100%> + <caption>GCC のアセンブラ言語出力までの流れ</caption> + <td style="margin:auto; text-align:center;"> + <img src="./pix/ir.png" style="height:15em"> + </td> +</table> +<li>ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。</li> +<li>この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。</li> + +--- + + + + Tail Call Elimination ======== 関数が Tail Call Elimination にかかる条件
--- a/presen/presentation.html Wed Feb 29 07:02:44 2012 +0900 +++ b/presen/presentation.html Wed Feb 29 09:55:14 2012 +0900 @@ -297,46 +297,6 @@ <div class="slide"> <div class="inner"> - <header><h1>Gnu Compiler Collection (GCC)</h1></header> - - - <section><p><li>GCC: オープンソースのコンパイラ群</li> -<li>ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。</li> -<li>GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。</li> -<table width=100%> - <caption>GCC のアセンブラ言語出力までの流れ</caption> - <td style="margin:auto; text-align:center;"> - <img src="./pix/ir.png" style="height:15em"> - </td> -</table> -<li>ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。</li> -<li>この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。</li></p></section> - - </div> - <div class="presenter_notes"> - <header><h1>Presenter Notes</h1></header> - <section> - - </section> - </div> - <footer> - - <aside class="source"> - Source: <a href="cbc.md">cbc.md</a> - </aside> - - <aside class="page_number"> - 6/23 - </aside> - </footer> - </div> - </div> - - <!-- slide source: cbc.md --> - <div class="slide-wrapper"> - <div class="slide"> - <div class="inner"> - <header><h1>CbC の実装 : 軽量継続</h1></header> @@ -384,7 +344,7 @@ </aside> <aside class="page_number"> - 7/23 + 6/23 </aside> </footer> </div> @@ -425,7 +385,7 @@ </aside> <aside class="page_number"> - 8/23 + 7/23 </aside> </footer> </div> @@ -475,7 +435,7 @@ </aside> <aside class="page_number"> - 9/23 + 8/23 </aside> </footer> </div> @@ -540,7 +500,7 @@ </aside> <aside class="page_number"> - 10/23 + 9/23 </aside> </footer> </div> @@ -593,7 +553,7 @@ </aside> <aside class="page_number"> - 11/23 + 10/23 </aside> </footer> </div> @@ -627,7 +587,7 @@ </aside> <aside class="page_number"> - 12/23 + 11/23 </aside> </footer> </div> @@ -667,7 +627,7 @@ </aside> <aside class="page_number"> - 13/23 + 12/23 </aside> </footer> </div> @@ -706,6 +666,46 @@ </aside> <aside class="page_number"> + 13/23 + </aside> + </footer> + </div> + </div> + + <!-- slide source: cbc.md --> + <div class="slide-wrapper"> + <div class="slide"> + <div class="inner"> + + <header><h1>Gnu Compiler Collection (GCC)</h1></header> + + + <section><p><li>GCC: オープンソースのコンパイラ群</li> +<li>ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。</li> +<li>GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。</li> +<table width=100%> + <caption>GCC のアセンブラ言語出力までの流れ</caption> + <td style="margin:auto; text-align:center;"> + <img src="./pix/ir.png" style="height:15em"> + </td> +</table> +<li>ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。</li> +<li>この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。</li></p></section> + + </div> + <div class="presenter_notes"> + <header><h1>Presenter Notes</h1></header> + <section> + + </section> + </div> + <footer> + + <aside class="source"> + Source: <a href="cbc.md">cbc.md</a> + </aside> + + <aside class="page_number"> 14/23 </aside> </footer> @@ -1238,55 +1238,55 @@ <tr id="toc-row-6"> - <th><a href="#slide6">Gnu Compiler Collection (GCC)</a></th> + <th><a href="#slide6">CbC の実装 : 軽量継続</a></th> <td><a href="#slide6">6</a></td> </tr> <tr id="toc-row-7"> - <th><a href="#slide7">CbC の実装 : 軽量継続</a></th> + <th><a href="#slide7">CbC の実装: 末尾除去の強制</a></th> <td><a href="#slide7">7</a></td> </tr> <tr id="toc-row-8"> - <th><a href="#slide8">CbC の実装: 末尾除去の強制</a></th> + <th><a href="#slide8">GCC-4.5, GCC-4.6 の性能比較</a></th> <td><a href="#slide8">8</a></td> </tr> <tr id="toc-row-9"> - <th><a href="#slide9">GCC-4.5, GCC-4.6 の性能比較</a></th> + <th><a href="#slide9">GCC-4.6 の最適化</a></th> <td><a href="#slide9">9</a></td> </tr> <tr id="toc-row-10"> - <th><a href="#slide10">GCC-4.6 の最適化</a></th> + <th><a href="#slide10">最適化の比較(conv1)</a></th> <td><a href="#slide10">10</a></td> </tr> <tr id="toc-row-11"> - <th><a href="#slide11">最適化の比較(conv1)</a></th> + <th><a href="#slide11">最新バージョンに合わせる有用性</a></th> <td><a href="#slide11">11</a></td> </tr> <tr id="toc-row-12"> - <th><a href="#slide12">最新バージョンに合わせる有用性</a></th> + <th><a href="#slide12">まとめ</a></th> <td><a href="#slide12">12</a></td> </tr> <tr id="toc-row-13"> - <th><a href="#slide13">まとめ</a></th> + <th><a href="#slide13">CbC</a></th> <td><a href="#slide13">13</a></td> </tr> <tr id="toc-row-14"> - <th><a href="#slide14">CbC</a></th> + <th><a href="#slide14">Gnu Compiler Collection (GCC)</a></th> <td><a href="#slide14">14</a></td> </tr>