Mercurial > hg > Papers > 2015 > kaito-lola
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> |