comparison presentation/presen.html @ 21:a6b9e8b67857

fixxxxx
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Sun, 05 Jul 2015 01:27:54 +0900
parents bce15480c8cb
children 26e2376219e0
comparison
equal deleted inserted replaced
20:bce15480c8cb 21:a6b9e8b67857
267 <h2>LLVM IR</h2> 267 <h2>LLVM IR</h2>
268 <ul> 268 <ul>
269 <li>Intermediate Representation (bit code). 269 <li>Intermediate Representation (bit code).
270 <li>Three forms: in-memory IR, bitcode stream, human readable language. 270 <li>Three forms: in-memory IR, bitcode stream, human readable language.
271 <li>it has precise type, data size, alignment 271 <li>it has precise type, data size, alignment
272 <li>function call flags : tail, fastcc, cc10, cc11, Erlang, ghc 272 <li>function call flags : tail, fastcc, cc10(GHC), cc11(HiPE), ccc
273 </ul> 273 </ul>
274 <table width='100%'> 274 <table width='100%'>
275 <tr> 275 <tr>
276 <td style="border: double;"> 276 <td style="border: double;">
277 <pre class='code'> 277 <pre class='code'>
390 390
391 <div class='slide'> 391 <div class='slide'>
392 <h2>Tail Call Elimination requirements</h2> 392 <h2>Tail Call Elimination requirements</h2>
393 <ul> 393 <ul>
394 <li>Set tail flag at the code segments call. 394 <li>Set tail flag at the code segments call.
395 <li>Tailcallopt path is enabled in the compiler. 395 <li>Tail call elimination path is enabled in the compiler.
396 <li>The caller and callee's calling conventions must be the same and their types should be cc10, cc11 or fastcc. 396 <li>The caller and callee's calling conventions must be the same and their types should be cc10, cc11 or fastcc.
397 <li>Return value type has to be the same as the caller's. 397 <li>Return value type has to be the same as the caller's.
398 </ul> 398 </ul>
399 </div> 399 </div>
400 400
404 <li>Always add tail call elimination pass. 404 <li>Always add tail call elimination pass.
405 <li>Tailcallopt is enabled in CbC. 405 <li>Tailcallopt is enabled in CbC.
406 <li>Fast cc is used consistently in code segments call. 406 <li>Fast cc is used consistently in code segments call.
407 <li>All the code segments return value type is void. 407 <li>All the code segments return value type is void.
408 </ul> 408 </ul>
409 <p>This is the reason why we need __code type for code segments.</p> 409 <p>These are the reason why we need __code type for code segments.</p>
410 </div> 410 </div>
411 411
412 <div class='slide'> 412 <div class='slide'>
413 <h2>goto a code segment from a normal C function</h2> 413 <h2>goto a code segment from a normal C function</h2>
414 <ul> 414 <ul>
528 <div class='slide'> 528 <div class='slide'>
529 <h2>Usage of CbC : as an instruction description</h2> 529 <h2>Usage of CbC : as an instruction description</h2>
530 <p>CbC can be used as a hardware description language (RTL level)</p> 530 <p>CbC can be used as a hardware description language (RTL level)</p>
531 <ul> 531 <ul>
532 <li>VU (Vector unit) in PS2 532 <li>VU (Vector unit) in PS2
533 <li>SPU in PS3 533 <li>SPU (Sound Processing Unit) in PS3
534 </ul> 534 </ul>
535 </div> 535 </div>
536 536
537 <div class='slide'> 537 <div class='slide'>
538 <h2>Usage of CbC : Parallel Task representation</h2> 538 <h2>Usage of CbC : Parallel Task representation</h2>