0
|
1 \contentsline {chapter}{\numberline {第1章}背景と目的}{1}
|
|
2 \contentsline {chapter}{\numberline {第2章}Continuation based C (CbC)}{2}
|
|
3 \contentsline {section}{\numberline {2.1}CbCとは}{2}
|
|
4 \contentsline {section}{\numberline {2.2}code segment}{2}
|
|
5 \contentsline {section}{\numberline {2.3}コード例}{3}
|
|
6 \contentsline {section}{\numberline {2.4}環境付き継続}{3}
|
|
7 \contentsline {chapter}{\numberline {第3章}LLVM/clang}{6}
|
|
8 \contentsline {section}{\numberline {3.1}LLVM/clang の概要}{6}
|
|
9 \contentsline {section}{\numberline {3.2}clang の基本構造}{6}
|
|
10 \contentsline {subsection}{\numberline {3.2.1}Abstract Syntax Tree (AST)}{7}
|
|
11 \contentsline {subsection}{\numberline {3.2.2}QualType}{9}
|
|
12 \contentsline {section}{\numberline {3.3}LLVM の基本構造}{10}
|
|
13 \contentsline {subsection}{\numberline {3.3.1}LLVM IR}{11}
|
|
14 \contentsline {subsection}{\numberline {3.3.2}SelectionDAG}{12}
|
|
15 \contentsline {subsection}{\numberline {3.3.3}Machine Code}{13}
|
|
16 \contentsline {subsection}{\numberline {3.3.4}MC Layer}{15}
|
|
17 \contentsline {subsection}{\numberline {3.3.5}最適化機構}{15}
|
|
18 \contentsline {section}{\numberline {3.4}Tail call elimination}{15}
|
|
19 \contentsline {subsection}{\numberline {3.4.1}Tail call elimination 概要}{15}
|
|
20 \contentsline {subsection}{\numberline {3.4.2}Tail call elimination の要件}{17}
|
|
21 \contentsline {chapter}{\numberline {第4章}実装}{19}
|
|
22 \contentsline {section}{\numberline {4.1}clang 側での \_\_code 型の追加とその構文解析}{19}
|
|
23 \contentsline {section}{\numberline {4.2}LLVM 側での \_\_code 型の追加}{21}
|
|
24 \contentsline {section}{\numberline {4.3}継続のための goto syntax の構文解析}{22}
|
|
25 \contentsline {section}{\numberline {4.4}Tail call elimination pass の条件の達成}{24}
|
|
26 \contentsline {section}{\numberline {4.5}環境付き継続の実装}{27}
|
|
27 \contentsline {subsection}{\numberline {4.5.1}clang により追加されるコード}{27}
|
|
28 \contentsline {section}{\numberline {4.6}実装方法}{28}
|
|
29 \contentsline {chapter}{\numberline {第5章}評価と考察}{34}
|
|
30 \contentsline {section}{\numberline {5.1}考察}{34}
|
|
31 \contentsline {chapter}{\numberline {第6章}今後の課題}{36}
|
|
32 \contentsline {chapter}{\numberline {付 録A }conv1 のソースコード}{39}
|