This shows you the differences between two versions of the page.
|
cpl:labs:10 [2016/12/11 21:48] bogdan.nitulescu [Exerciții de laborator (10p)] |
cpl:labs:10 [2017/12/05 08:34] (current) bogdan.nitulescu [Exercițiul 1] |
||
|---|---|---|---|
| Line 342: | Line 342: | ||
| <code bash> | <code bash> | ||
| - | clang -O0 -emit-llvm test.c -c -o test.bc | + | clang -c -O0 -emit-llvm test.c -c -o test.bc |
| opt -p -mem2reg -dce < test.bc > /dev/null | opt -p -mem2reg -dce < test.bc > /dev/null | ||
| opt -p -mem2reg -adce < test.bc > /dev/null | opt -p -mem2reg -adce < test.bc > /dev/null | ||
| Line 353: | Line 353: | ||
| * La execuție folosiți parametrul ''load'' cu calea către noul pass, ex: | * La execuție folosiți parametrul ''load'' cu calea către noul pass, ex: | ||
| <code bash> | <code bash> | ||
| - | opt -p -mem2reg -load ../llvm-3.6.2/src/Release+Asserts/lib/DCE.so -mydce < test.bc > /dev/null | + | opt -p -mem2reg -load ~packages/llvm-3.8.0/build/lib/libLLVMScalarOpts.a -mydce < test.bc > /dev/null |
| </code> | </code> | ||
| * Ce observați? | * Ce observați? | ||
| Line 395: | Line 395: | ||
| ===== Exercițiul 2 ===== | ===== Exercițiul 2 ===== | ||
| - | Implementaţi [[http://en.wikipedia.org/wiki/Live_variable_analysis |analiza live variables]]. Algoritmul este explicat clar şi concis în Dragon book dar şi în slide-urile de [[http://infolab.stanford.edu/~ullman/dragon/slides4.pdf|aici]]. Puteţi pleca de la fişierul ''Hello3.cpp'' din arhiva laboratorului. Pentru implementare, urmăriţi şi instrucţiunile din cod. | + | Implementaţi [[http://en.wikipedia.org/wiki/Live_variable_analysis |analiza live variables]]. Algoritmul este explicat clar şi concis în Dragon book dar şi în slide-urile de [[http://infolab.stanford.edu/~ullman/dragon/slides4.pdf|aici]]. Puteţi pleca de la fişierul ''LiveVars.cpp'' din arhiva laboratorului. Pentru implementare, urmăriţi şi instrucţiunile din cod. |
| * ce reprezintă gen(B)/def(B)? Dar kill/use? | * ce reprezintă gen(B)/def(B)? Dar kill/use? | ||
| * explicaţi ecuaţia de flux pentru in(B) | * explicaţi ecuaţia de flux pentru in(B) | ||