changeset 2:b2c3cf0ee390

update
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 15 Jun 2018 20:48:13 +0900
parents 61e24cbc5f22
children 2326125d13cf
files slide.md
diffstat 1 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/slide.md	Fri Jun 15 17:49:37 2018 +0900
+++ b/slide.md	Fri Jun 15 20:48:13 2018 +0900
@@ -28,7 +28,7 @@
 - GCCとは**GNU Compiler Collection**の略で1985年から開発されているOSSなコンパイラパッケージです
     - C言語で実装され,様々な言語のコンパイルをサポートしているのが特徴です
 - LLVMとはLLVMというコンパイラ基盤のことを指します
-    - JavaのByteCodeの用に仮想的な言語であるLLVMIRをサポートしており,柔軟に言語処理系を実装する事が可能です
+    - レジスタが無限にある仮想マシン用の言語であるLLVMIRをサポートしており,柔軟に言語処理系を実装する事が可能です
     - ClangはLLVMを用いたC言語系統の言語コンパイラです
     - 主な実装はC++で記述されています
 
@@ -315,6 +315,21 @@
 (clang::Token) $0 = (Loc = 2151358386, UintData = 1, PtrData = 0x0000000116020184, Kind = numeric_constant, Flags = 0)
 ```
 
+!SLIDE
+## パス
+
+- コンパイラで生成された内部表現をそれぞれ「pass」と呼ぶ
+- コンパイラは生成したpassの一覧を所持している
+- そのパスに応じた処理をそれぞれdefファイルを用いて定義している
+- 今回はCbCを実装する際に利用するインライン展開の制御部分を確認する
+
+!SLIDE
+## gccのパス一覧
+
+- gccは`gcc/passes.def`という定義ファイルで処理を定義している
+- この内部処理は`passes.c`内で定義されている`execute_one_pass`関数が実行する
+
+
 
 !SLIDE
 ## gccのコード生成
@@ -332,6 +347,3 @@
     - この部分はgccの`expand_call`と対応している
 
 
-## gccのパス
-
-- `