Mercurial > hg > Papers > 2015 > kaito-lola
comparison presentation/presen.html @ 11:4cff1ef8fbf6
fix
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 04 Jul 2015 17:25:27 +0900 |
parents | 81195c2fcf4a |
children | 40be058f9df8 |
comparison
equal
deleted
inserted
replaced
10:81195c2fcf4a | 11:4cff1ef8fbf6 |
---|---|
174 } | 174 } |
175 </pre> | 175 </pre> |
176 </td><td valign='top'> | 176 </td><td valign='top'> |
177 <ul> | 177 <ul> |
178 <li>Code segments like C functions. | 178 <li>Code segments like C functions. |
179 <li>CbC transition is goto so code segments do not return to previous. | 179 <li>CbC transition is goto. |
180 <li>Code segments do not return to previous. | |
180 <li>There are no return values. | 181 <li>There are no return values. |
181 </ul> | 182 </ul> |
182 </td></tr> | 183 </td></tr> |
183 </table> | 184 </table> |
184 </div> | 185 </div> |
213 </pre> | 214 </pre> |
214 </td><td valign='top'> | 215 </td><td valign='top'> |
215 <ul> | 216 <ul> |
216 <li>A part of list program. | 217 <li>A part of list program. |
217 <li>Code segment transition into next one via meta code segment. | 218 <li>Code segment transition into next one via meta code segment. |
218 <li> | 219 <li>Context has code segments name. |
219 <li> | 220 <li>Context give meta code segments next code segment pointer. |
220 </ul> | 221 </ul> |
221 </td></tr> | 222 </td></tr> |
222 </table> | 223 </table> |
223 </div> | 224 </div> |
224 | 225 |
312 <div class='slide'> | 313 <div class='slide'> |
313 <h2>Basic strategy of implementating</h2> | 314 <h2>Basic strategy of implementating</h2> |
314 <ul> | 315 <ul> |
315 <li>Code segments are implemented by C functions. | 316 <li>Code segments are implemented by C functions. |
316 <li>Data segments are implemented by C structs. | 317 <li>Data segments are implemented by C structs. |
317 <li>Transition is implemented by forced tail call elimination. | 318 <li>Transition is implemented by tail call elimination. |
318 <li>Goto with environment is implemented by setjmp and longjmp. | 319 <li>Goto with environment is implemented by setjmp and longjmp. |
319 </ul> | 320 <ul> |
320 </div> | 321 <li>Goto with environment enable code segments to return C functions. |
321 | 322 </ul> |
323 </ul> | |
324 </div> | |
325 | |
326 <!-- | |
322 <div class='slide'> | 327 <div class='slide'> |
323 <h2>Implementating CbC compiler in LLVM and Clang</h2> | 328 <h2>Implementating CbC compiler in LLVM and Clang</h2> |
324 <ul> | 329 <ul> |
325 <li>__code type. | 330 <li>__code type. |
326 <li>Goto syntax. | 331 <li>Goto syntax. |
327 <li>Force to do tail call elimination. | 332 <li>Force to do tail call elimination. |
328 <li>Goto with environment. | 333 <li>Goto with environment. |
329 <li>Automatically prototype declatation genarating. | 334 <li>Automatically prototype declatation genarating. |
330 </ul> | 335 </ul> |
331 </div> | 336 </div> |
337 --> | |
332 | 338 |
333 <div class='slide'> | 339 <div class='slide'> |
334 <h2>Parser</h2> | 340 <h2>Parser</h2> |
335 <div align='center'><img src="fig/clang_llvm_slide_parse.svg" width="70%"></div> | |
336 <ul> | 341 <ul> |
337 <li>__code type | 342 <li>__code type |
338 <li>Prototype declaration generating | 343 <li>Prototype declaration generating |
339 <li>Goto syntax for transitions | 344 <li>Goto syntax for transitions |
340 </ul> | 345 </ul> |
346 <div align='center'><img src="fig/clang_llvm_slide_parse.svg" width="60%"></div> | |
341 </div> | 347 </div> |
342 | 348 |
343 <div class='slide'> | 349 <div class='slide'> |
344 <h2>__code type</h2> | 350 <h2>__code type</h2> |
345 <table width='100%'> | 351 <table width='100%'> |
439 | 445 |
440 <div class='slide'> | 446 <div class='slide'> |
441 <h2>Forcing Tail Call Elimination</h2> | 447 <h2>Forcing Tail Call Elimination</h2> |
442 <p>TCE is enabled at CodeGen.</p> | 448 <p>TCE is enabled at CodeGen.</p> |
443 <p>TCE is act at SelectionDAGISel.</p> | 449 <p>TCE is act at SelectionDAGISel.</p> |
444 <div align='center'><img src="fig/clang_llvm_slide_cg_DAG.svg" width="70%"></div> | 450 <div align='center'><img src="fig/clang_llvm_slide_cg_DAG.svg" width="60%"></div> |
445 </div> | 451 </div> |
446 | 452 |
447 <div class='slide'> | 453 <div class='slide'> |
448 <h2>Jmp instruction based transition</h2> | 454 <!-- <h2>Jmp instruction based transition</h2> --> |
455 <h2>What is tail call elimination?</h2> | |
449 <ul> | 456 <ul> |
450 <li>Tail call is immediately followed by return. | 457 <li>Tail call is immediately followed by return. |
451 <li>Tail call elimination replace tail call's call instructions with jmp instructions. | 458 <li>Tail call elimination replace tail call's call instructions with jmp instructions. |
452 <li>Transitions are implemented by forced tail call elimination. | 459 <li>Transitions are implemented by forced tail call elimination. |
453 </ul> | 460 </ul> |