Mercurial > hg > Papers > 2015 > kaito-lola
changeset 14:b9179e9084d9
spell check
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 04 Jul 2015 23:00:54 +0900 |
parents | 607acd92b8eb |
children | bbbeecda034d |
files | presentation/presen.html |
diffstat | 1 files changed, 24 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/presentation/presen.html Sat Jul 04 22:52:09 2015 +0900 +++ b/presentation/presen.html Sat Jul 04 23:00:54 2015 +0900 @@ -2,7 +2,7 @@ <html> <head> <meta charset='utf-8'> - <title>Presen</title> + <title>Presentation</title> <!-- style sheet links --> <link rel="stylesheet/less" href="themes/blank/projection.css.less" media="screen,projection"> <link rel="stylesheet/less" href="themes/blank/screen.css.less" media="screen"> @@ -73,7 +73,7 @@ <div class='slide'> <h2>Objective</h2> <ul> - <li>Acheive Reliable computation + <li>Achieve Reliable computation <li>Extract Concurrent Execution Automatically <li>Modify and Improve software in a Reliable way <li>Get more Reusablity @@ -107,7 +107,7 @@ </div> <div class='slide'> - <h2>New programing units</h2> + <h2>New programming units</h2> <ul> <li>Units of programming: code segments, data segments. <li>Code segments are units of calculation. @@ -121,7 +121,7 @@ <li>Function from input data segments to output data segments. <li>Code segments have no states. <li>Access in typed data in the data segments by name. - <li>Specify code segmnets to be executed using goto. + <li>Specify code segments to be executed using goto. </ul> <h3>It is easy to divide or combine.</h3> </div> @@ -157,7 +157,7 @@ <li>Basic syntax is the same as the C, except __code and goto. <li>__code is a type of code segment <li>Code segments end with parameterized goto. - <li>Data segments are inplemented as C structures. + <li>Data segments are implemented as C structures. </ul> </div> @@ -233,7 +233,7 @@ <li>AST : Abstract Syntax Tree (C++ object) <li>LLVM IR is Intermediate Representation (bit code). <li>Clang translate C/C++/Obj-C into LLVM IR. - <li>SelectionDAG : Codegenerator internal + <li>SelectionDAG : Code generator internal <li>Machine Code : LLVM Machine code </ul> <div align="center"><img src="fig/clang_llvm_structure.svg" width="45%"></div> @@ -252,11 +252,11 @@ <div class='slide'> <h2>CbC implementation strategy</h2> <ul> - <li>define special type __coee for code segments - <li>no code segment prototyping (othewise it beomes quite messy ) + <li>define special type __code for code segments + <li>no code segment prototyping (otherwise it becomes quite messy ) <li>code segments are implemented as tail call force functions - <li>Do not modify IR (Intermidiate representations ) - <li>goto statement is actualy a function call with following return statement <br> + <li>Do not modify IR (Intermediate representations ) + <li>goto statement is actually a function call with following return statement <br> goto f() --> { f() ; return; } <li>allow mixing code segments and normal function calls ( goto with environment ) </ul> @@ -268,7 +268,7 @@ <li>Intermediate Representation (bit code). <li>Three forms: in-memory IR, bitcode stream, human readable language. <li>it has precise type, data size, alignment - <li>funcion call flags : tail, fastcc, cc10, cc11, erlang, ghc + <li>function call flags : tail, fastcc, cc10, cc11, Erlang, ghc </ul> <table width='100%'> <tr> @@ -290,7 +290,7 @@ <ul> <li>Code segments are implemented by C functions with return-type __code. <li>Data segments are implemented by C structs. - <li>Goto statement is implemented by seting tail call flag. + <li>Goto statement is implemented by setting tail call flag. <li>Goto with environment is implemented by setjmp and longjmp. </ul> </div> @@ -302,7 +302,7 @@ <li>In CbC, programmer write a lot of code segments. <li>Automatically prototype declarator support it. <!-- <li>When parser meet a code segment call, it stop current parsing and search called code segment declaration.--> - <li>If the declaration was not found, search definision and generate declaration. + <li>If the declaration was not found, search definition and generate declaration. <ul> <li>Of course you can write declaration yourself too. </ul> @@ -310,7 +310,7 @@ <table border='1' width='80%' align='center'> <tr> <td>original input code - <td>Clang genarates it internaly + <td>Clang generates it internally </tr> <tr> <td><pre class='small_code'> @@ -347,7 +347,7 @@ <table border='1' width='80%' align='center'> <tr> <td>original input code - <td>Clang genarates it + <td>Clang generates it </tr> <tr> <td><pre class='small_code'> @@ -369,7 +369,7 @@ <div class='slide'> <h2>Forcing Tail Call Elimination</h2> - <p>Tail call flang is set in CodeGen.</p> + <p>Tail call flag is set in CodeGen.</p> <p>Ensure TCE in SelectionDAGISel.</p> <div align='center'><img src="fig/clang_llvm_slide_cg_DAG.svg" width="60%"></div> </div> @@ -392,7 +392,7 @@ <ul> <li>Set tail flag at the code segments call. <li>Tailcallopt path is enabled in the compiler. - <li>The caller and calle's calling conventions must be the same and their types should be cc10, cc11 or fastcc. + <li>The caller and callee's calling conventions must be the same and their types should be cc10, cc11 or fastcc. <li>Return value type has to be the same as the caller's. </ul> </div> @@ -411,7 +411,7 @@ <div class='slide'> <h2>goto a code segment from a normal C function</h2> <ul> - <li>Assume we have code segment g and normal funciton f + <li>Assume we have code segment g and normal function f <li>simply goto g() in C function f() <li>goto g() never returns to function f </ul> @@ -435,7 +435,7 @@ <ul> <li>Use new keywords __return and __environment. <li>__return is a code segment pointer for C functions. - <li>__environment is a envitonment for C functions. + <li>__environment is a environment for C functions. <li>Code1 use a continuation with environments to return main function. </ul> <td style="border: double;"> @@ -466,7 +466,7 @@ <h2>Implementation of goto with environment</h2> Several ways to implementation <ul> - <li>setmp/longjmp (LLVM) + <li>setjmp/longjmp (LLVM) <li>nested function closure with thread safe variable (GCC) <li>direct manipulation of frame pointer and return value (Micro-C) </ul> @@ -603,18 +603,18 @@ </ul> <li>Meta computation syntax. <li>More user friendly syntax. - <li>Automitic data segment generator. + <li>Automatic data segment generator. <li>Signature for data segment. </ul> </div> <div class='slide'> - <h2>LLVM and Clang's intermidiate representations</h2> + <h2>LLVM and Clang's intermediate representations</h2> <table border='1' align='center' width='80%'> <tr><td width='25%'> Name </td><td> - Desctiption + Description </td></tr> <tr><td> clang AST @@ -624,7 +624,7 @@ <tr><td> LLVM IR </td><td> - The main intermidiate representation of LLVM. It has three diffirent forms: as an in-memory compiler IR, as an on-disk bitcode representation, and as a human readable assembly language representation. + The main intermediate representation of LLVM. It has three different forms: as an in-memory compiler IR, as an on-disk bitcode representation, and as a human readable assembly language representation. </td></tr> <tr><td> SelectionDAG