Gyakorlattal kapcsolatos anyagok

Gyakorlat időpont
Szerda 14:00-15:30
Gyakorlat helyszín
D 1-110

1. Gyakorlat

Témakörök

  • Áttekintés: fordítók architektúrája, rekruzív leszállás, balrekurzió eliminálása, GLR elemzés, optimalizáció, ütemezés, instruction selection, regiszter allokáció, cpu architektúrák, out of order execution, SIMD, CPU pipeline

A diasor elérhető innen.

2. Gyakorlat

Témakörök

  • Típusrendszer feladatai, alias analízis, kifejezőerő
  • SMT solverek használata
  • Köztes reprezentációk: Absztrakt szintaxisfa, konkrét szintaxisfa, szintaxis DAG, control flow graph, függőségi gráf, hívási gráf, lineáris kód, static single-assignment forma
  • Clang által generált LLVM IR, mem2reg pass SSA-vá alakításhoz

3. Gyakorlat

Témakörök

  • Galois leképzés, absztrakció, absztrak interpretáció, absztrakt értékkészletek
  • Data flow analízis, fixpont iteráció, bejárási stratégiák, preorder, postorder, bfs, worklist, reverse post order
  • Hálók, widening, transzfer függvények, over-approximation
  • Segédanyag elérhető innen.

4. Gyakorlat

Témakörök

  • Calling convention, static függvények jelentősége, inlining, outlining, tail call elimination
  • Procedure placement probléma, basic block placement probléma, likely, unlikely, profile guided optimization
  • Code shape variációk: részkifejezés kiértékelési sorrendje, switch kezelése, egyéni tömbindexelés
  • Call chain clustering blogpost elérhető innen.

5. Gyakorlat

Témakörök

  • Optimalizációk scope-ja: lokális, szuperlokális (régió, extended basic block), globális, inter-procedurális, link time
  • Local Value Numbering, Superlocal Value Numbering, összehasonlítás common subexpression eliminationnel
  • Tree balancing algoritmus, constant folging tree balancinggal

6. Gyakorlat

Témakörök

  • SSA reprezentációban nevek, értékek, utasítások ekvivalenciája, kódgeneráláskor fí csúcsok eliminálása, kritikus él fogalma
  • Simple Spare Constant Propagation algoritmus, call graph konstrukció problémái
  • Redundant code elimination, dead code elimination algoritmusok

7. Gyakorlat

Témakörök

  • Lazy code motion/partial redundancy elimination, (slideok)

8. Gyakorlat

  • Chains of recurrences

9. Gyakorlat

  • MLIR, kódgenerálás: instruction selection, scheduling, register allocation