Mercurial > hg > Members > kaito > slides
view 2013/old/2013_10_29.html @ 0:845ff8ff4fc9
1st
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 14 Jan 2014 01:31:42 +0900 |
parents | |
children |
line wrap: on
line source
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> <script src='./trunk/slides.js'></script> </head> <body style='display: none'> <section class='slides layout-regular template-default'> <article> <h1>CbCコンパイラのLLVM3.4上での実装</h1> <p><br>Kaito Tokumori<br>October 15, 2013</p> </article> <article> <h3>研究背景と目的 (1)</h3> <p>現代社会においてプログラムは様々な場所で用いられ、その用途に応じて求められる要素も様々である。例えばReal-timeな制御が重要視される場合には速度が、組込みシステムなどのメモリが制限される環境では軽量なプログラムが求められる。軽量で高速であるという条件に最も適しているのはアセンブリ言語であるが、低レベル過ぎてわかりづらい上に、アーキテクチャへの依存性が高いため汎用的でない。当研究室ではそういった要求に応える言語としてCbCを提案している。</p> </article> <article> <h3>研究背景と目的 (2)</h3> <p>CbCのコンパイラとしては初めにmicro-cをベースとしたものが開発され、続いて2008年の研究によりGCCベースのものが開発されGCCの持つ最適化の恩恵を受けることに成功した。しかし、Mac OS Xの最新版であるMavericksでは、cコンパイラとしてgccではなくllvm(clang)が用いられるようになった。llvmもgccと同じように強力な最適化を持っており、さらにエラーメッセージがgccに比べ丁寧であるという特徴を持つ。本研究では、micro-c,gccに続くLLVM/clangベースのコンパイラの開発を行う。</p> </article> <article> <h3>先々週課されたもの</h3> <ul> <li>研究目的をもうちょっとなんとか(3回目)</li> <li>環境付き継続について考える</li> </ul> </article> <article> <h3>環境付き継続</h3> <ul> <li>gccと同様にnested functionを用いる</li> <li>exceptionを使う</li> <li>setjmp,longjmpを使う</li> <li>何かllvmの機能でどうにかこうにか</li> </ul> </article> <article> <h3>llvm</h3> <ul> <li>何かllvmの機能でどうにかこうにか</li> <li>llvm.returnaddressとかllvm.frameaddressとか<ul> <li>注意書き:debug時限定に使用されるべき</li> </ul></li> <li>llvmでのException handlingはSetjmp/Longjmpを用いて行われる</li> </ul> </article> </section> </body> </html>