# HG changeset patch # User Nobuyasu Oshiro # Date 1330476914 -32400 # Node ID 1d830d6fc30bd4e2b6a6569bc160372bac4136b9 # Parent 8539cd84106e1b50cc39a3a46ff187bec9532530 commit diff -r 8539cd84106e -r 1d830d6fc30b presen/cbc.md --- 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) -======== -
  • GCC: オープンソースのコンパイラ群
  • -
  • ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。
  • -
  • GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。
  • - - - -
    GCC のアセンブラ言語出力までの流れ
    - -
    -
  • ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。
  • -
  • この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。
  • - ---- - - CbC の実装 : 軽量継続 ========
  • CbC-GCC の軽量継続は最適化の1つ, Tail Call Elimination(末尾除去)により実装されている.
  • @@ -348,6 +331,26 @@ --- + +Gnu Compiler Collection (GCC) +======== +
  • GCC: オープンソースのコンパイラ群
  • +
  • ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。
  • +
  • GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。
  • + + + +
    GCC のアセンブラ言語出力までの流れ
    + +
    +
  • ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。
  • +
  • この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。
  • + +--- + + + + Tail Call Elimination ======== 関数が Tail Call Elimination にかかる条件 diff -r 8539cd84106e -r 1d830d6fc30b presen/presentation.html --- 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 @@
    -

    Gnu Compiler Collection (GCC)

    - - -

  • GCC: オープンソースのコンパイラ群
  • -
  • ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。
  • -
  • GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。
  • - - - -
    GCC のアセンブラ言語出力までの流れ
    - -
    -
  • ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。
  • -
  • この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。
  • - -
    -
    -

    Presenter Notes

    -
    - -
    -
    -
    - - - - -
    -
    - - - -
    -
    -
    -

    CbC の実装 : 軽量継続

    @@ -384,7 +344,7 @@
    @@ -425,7 +385,7 @@
    @@ -475,7 +435,7 @@
    @@ -540,7 +500,7 @@ @@ -593,7 +553,7 @@ @@ -627,7 +587,7 @@ @@ -667,7 +627,7 @@ @@ -706,6 +666,46 @@ + + + + + +
    +
    +
    + +

    Gnu Compiler Collection (GCC)

    + + +

  • GCC: オープンソースのコンパイラ群
  • +
  • ここで扱う GCC はソースコードをアセンブラに変換する『cc1』のことを指す。
  • +
  • GCC がソースコードを読み込みアセンブラ言語を出力するまでの流れは以下の図のようになる。
  • + + + +
    GCC のアセンブラ言語出力までの流れ
    + +
    +
  • ソースコードはアセンブラに変換される間に 4 つのデータ構造に変換される。
  • +
  • この中でも CbC の実装では Parser と RTL の生成部分に手が加えられている。
  • + +
    +
    +

    Presenter Notes

    +
    + +
    +
    +
    + + + +
    @@ -1238,55 +1238,55 @@ - Gnu Compiler Collection (GCC) + CbC の実装 : 軽量継続 6 - CbC の実装 : 軽量継続 + CbC の実装: 末尾除去の強制 7 - CbC の実装: 末尾除去の強制 + GCC-4.5, GCC-4.6 の性能比較 8 - GCC-4.5, GCC-4.6 の性能比較 + GCC-4.6 の最適化 9 - GCC-4.6 の最適化 + 最適化の比較(conv1) 10 - 最適化の比較(conv1) + 最新バージョンに合わせる有用性 11 - 最新バージョンに合わせる有用性 + まとめ 12 - まとめ + CbC 13 - CbC + Gnu Compiler Collection (GCC) 14