This shows you the differences between two versions of the page.
cpl:labs-draft:11 [2016/12/20 01:35] bogdan.nitulescu [Exercițiul 2] |
cpl:labs-draft:11 [2016/12/20 01:58] (current) bogdan.nitulescu [Exerciții de laborator (15p)] |
||
---|---|---|---|
Line 115: | Line 115: | ||
<note> | <note> | ||
Laboratorul este compus dintr-o exerciții practice care includ analiza formei SSA și implementarea unor optimizări. | Laboratorul este compus dintr-o exerciții practice care includ analiza formei SSA și implementarea unor optimizări. | ||
- | Înainte de începerea exercițiilor downloadați arhiva de {{:cpl:labs:lab10.zip|aici}}. | + | Înainte de începerea exercițiilor downloadați arhiva de {{:cpl:labs:lab11_2016.zip|aici}}. |
Compilati exercitiile cu -O0 pentru a nu lasa compilatorul sa aplice optimizari. | Compilati exercitiile cu -O0 pentru a nu lasa compilatorul sa aplice optimizari. | ||
Line 176: | Line 176: | ||
===== Exercițiul 3 ===== | ===== Exercițiul 3 ===== | ||
- | Folosind codul din fişierul ''Hello2.cpp'' din archiva laboratorului, urmăriţi modul în care pot fi implementată simple constant propagation în LLVM. | + | Folosind codul din fişierul ''Hello.cpp'' din arhiva laboratorului, urmăriţi modul în care pot fi implementată simple constant propagation în LLVM. |
- | * cum se obţine numele unui basic block? | + | |
* cum poate fi identificată o instrucţiune inutilă? | * cum poate fi identificată o instrucţiune inutilă? | ||
* identificaţi metoda responsabilă pentru constant folding | * identificaţi metoda responsabilă pentru constant folding | ||
* cum se înlocuiesc apariţiile viitoare ale variabilei în cauză cu o constantă? | * cum se înlocuiesc apariţiile viitoare ale variabilei în cauză cu o constantă? | ||
* de ce se adaugă din nou în worklist unele instrucţiuni? | * de ce se adaugă din nou în worklist unele instrucţiuni? | ||
- | * realizaţi un fişier de test (urmând paşii de la exerciţiul 1) pentru a ilustra beneficiile acestui pas. Rulaţi acest pas pe exemplul ales. | + | * Rulaţi acest pas folosind fisierul ''test.c'' din arhiva laboratorului. |