1 / 13

Adăugarea suportului pentru forma SSA în Jato

Universitatea Politehnica București. Facultatea de Automatică și Calculatoare. Catedra de Calculatoare. Adăugarea suportului pentru forma SSA în Jato. Autor. Conducători științifici. Ana-Maria Farca și. as. drd . ing . Răzvan Deaconescu drd . ing . Octavian Purdilă. Jato.

Télécharger la présentation

Adăugarea suportului pentru forma SSA în Jato

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universitatea Politehnica București Facultatea de Automatică și Calculatoare Catedra de Calculatoare Adăugarea suportului pentru forma SSA în Jato Autor Conducători științifici Ana-Maria Farcași as. drd. ing. Răzvan Deaconescu drd. ing. Octavian Purdilă

  2. Jato Ce este Jato? Licență - Iulie 2011

  3. Noțiuni preliminare • Bloc de control • Graf de control • Dominanță • Arbore de dominanță • Set de frontieră de dominanță Licență - Iulie 2011

  4. SSA Forma SSA (Static Single Assignment) • Ce reprezintă? • Avantaje? • Dezavantaje? a = 1 a = a + 2 b = a a = a *bx Forma non-SSA a1 = 1 a2 = a1 + 2 b1 = a2 a3 = a2 *b1 Forma SSA Licență - Iulie 2011

  5. Arhitectura aplicației Legendă SSA – Static Single Assignment LIR – Low Intermediate Representation DCE – Dead Code Elimination Licență - Iulie 2011

  6. Conversie LIR-SSA • Inserare funcții phi • Redenumire variabile Pentru cod liniar, precum cel din cadrul unui bloc, conversia este simplă. Ce ne facem însă atunci când două căi din graful de control al programului se intersectează? Licență - Iulie 2011

  7. LIR-SSA Inserare funcții phi Licență - Iulie 2011

  8. LIR-SSA Redenumire variabile • Se pornește cu blocul de intrare • Stivă pentru fiecare variabilă • Redenumire de-a lungul arborelui de dominanță • Parametrii funcției phi Licență - Iulie 2011

  9. Optimizări • eliminarea codului inutil (“dead code”) • propagarea constantelor • propagarea copierilor • eliminarea calculelor redundante • eliminarea subexpresiilor comune Licență - Iulie 2011

  10. DCE • Implementare variantă simplă a DCE • Elimină cod care nu afectează rezultatul programului • Reduce dimensiunea programului • Reduce timpul de execuție prin eliminarea operațiunilor irelevante Licență - Iulie 2011

  11. Conversie SSA-LIR • Predecesori cu mai mulți succesori • Predecesori ce se termină într-o instrucțiune de salt condiționat • Instrucțiuni cu 2 adrese Licență - Iulie 2011

  12. Rezultate și concluzii • Implementat • conversia LIR->SSA • optimizarea de eliminare a codului inutil • conversia SSA->LIR • Rulare cu SSA => timp de rulare cu câteva zecimi de secundă mai mare • Îmbunătățiri: • Euristică • Variantă agresivă de DCE • Noi optimizări Licență - Iulie 2011

  13. Mulțumesc pentru atenție! • SSA • LIR • bloc de control • graf de control • set de frontieră de dominanță • arbore de dominanță • funcții phi • redenumire variabile • registru virtual • registru fizic Întrebări ?? Licență - Iulie 2011

More Related