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>