This shows you the differences between two versions of the page.
cpl:info:documentatie [2015/10/04 18:19] cristina.ciocan |
cpl:info:documentatie [2017/11/14 08:04] (current) bogdan.nitulescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Documentație și alte resurse ====== | ====== Documentație și alte resurse ====== | ||
- | ===== Documentație ===== | + | ===== Instructiuni compilare LLVM 3.8 + CLANG 3.8 din surse === |
- | * Documentație utilă pentru cursul și laboratorul de Compilatoare | + | **1. Downloadarea arhivei de LLVM 3.8.0[1] în /home/student/Downloads/** |
- | === Bibliografie === | + | **2. Instalarea surselor în /home/student/packages/** |
- | * **Compilers - Principles, Techniques and Tools** - Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman Publisher: Addison Wesley; 2nd edition (August 31, 2006) ISBN: 0321486811 | + | # 7z x llvm-3.8.0.src.tar.xz |
- | Este textul de referință pentru bazele teoretice ale compilatoarelor; baza pentru cursurile despre analiza sintactică, analiza semantică, generarea codului obiect. Ediția a 2-a acoperă și cursurile despre optimizări. | + | |
- | * **{{:cpl:info:irina-athanasiu-lfa.pdf|Limbaje Formale și Automate}}** - Irina Athanasiu - 2002 | + | # tar -xf llvm-3.8.0.src.tar |
- | Conține fundamentele teoretice ale analizei sintactice; utilă și pentru a recapitula noțiunile de la cursul LFA. | + | |
- | == Extra == | + | # mkdir -p /home/student/packages/llvm-3.8.0/build |
- | * **Advanced Compiler Design and Implementation** - Steven Muchnick Publisher: Morgan Kaufmann (August 15, 1997) ISBN: 1558603204 | + | |
- | Referința în ceea ce privește optimizarile, și baza pentru cursurile de analiză a fluxului de control, analiza fluxului de date, optimizări intra si interprocedurale, analiza de alias, alocarea regiștrilor și planificarea instrucțiunilor. | + | |
- | * **Engineering a Compiler** - Keith Cooper, Linda Torczon, Publisher: Morgan Kaufmann (October 27, 2003) ISBN: 155860698X | + | # mkdir -p /home/student/packages/llvm-3.8.0/install |
- | O abordare practică pentru studiul compilatoarelor. O puteți folosi pentru explicații clare și informații suplimentare privind analiza sintactică, analiza semantică, generarea codului obiect, alocarea regiștrilor și planificarea instrucțiunilor. | + | |
- | * **Optimizing Compilers for Modern Architectures: A Dependence-based Approach** - Randy Allen, Ken Kennedy, Publisher: Morgan Kaufmann; 1st edition (October 10, 2001) ISBN: 1558602860 | + | # mv llvm-3.8.0.src /home/student/packages/llvm-3.8.0/src |
- | Recomandată pentru a înțelege analiza de dependență, algoritmi de vectorizare si paralelizare. | + | |
- | * **Computer Architecture: A Quantitative Approach** - John L. Hennessy, David A. Patterson, Publisher: Morgan Kaufmann; 4 edition (September 27, 2006), ISBN: 0123704901 | ||
- | Recomandată pentru a înțelege arhitecturile setului de instrucțiuni și implementarile lor în hardware. | ||
- | * **Modern Compiler Design** - D. Grune, H. Bal, C. Jacobs, K. Langendoen, Publisher: Wiley; 1st edition (August 30, 2000) ISBN: 0471976970 | + | **3. Downloadarea arhivei de CLANG[2] și compiler-rt[3] în /home/student/Downloads/** |
- | Conține informații suplimentare despre generarea de cod, inclusiv pentru limbaje orientate obiect, programarea generică, funcțională sau logică, precum și tehnici de garbage collection. | + | |
- | * **Modern Compiler Implementation in Java** - Andrew W. Appel, Jens Palsberg Publisher: Cambridge University Press; 2 edition (November, 2002) ISBN: 052182060X | ||
+ | **4. Instalarea surselor în /home/student/packages/** | ||
+ | |||
+ | # 7z x cfe-3.8.0.src.tar.xz | ||
+ | |||
+ | # tar -xf cfe-3.8.0.src.tar | ||
+ | |||
+ | # 7z x compiler-rt-3.8.0.src.tar.xz | ||
+ | |||
+ | # tar -xf compiler-rt-3.8.0.src.tar | ||
+ | |||
+ | # mv compiler-rt-3.8.0.src /home/student/packages/llvm-3.8.0/src/projects/compiler-rt | ||
+ | |||
+ | # mv cfe-3.8.0.src /home/student/packages/llvm-3.8.0/src/projects/clang | ||
+ | |||
+ | |||
+ | **5. Automake** | ||
+ | |||
+ | # cd /home/student/packages/llvm-3.8.0/build | ||
+ | |||
+ | <code> | ||
+ | cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/home/student/packages/llvm-3.8.0/install -DCMAKE_BUILD_TYPE=Debug /home/student/packages/llvm-3.8.0/src | ||
+ | </code> | ||
+ | |||
+ | **6. Compilarea | ||
+ | ** | ||
+ | # make | ||
+ | |||
+ | **7. Instalarea** | ||
+ | |||
+ | # make install | ||
+ | |||
+ | **8. Configurarea variabilelor de mediu în /etc/bash.bashrc** | ||
+ | |||
+ | <code> | ||
+ | export LLVM_INSTALL=/home/student/packages/llvm-3.8.0/install | ||
+ | |||
+ | export PATH=$LLVM_INSTALL/bin:$PATH | ||
+ | |||
+ | export LLVM_LIB_SEARCH_PATH=$LLVM_INSTALL/lib | ||
+ | </code> | ||
+ | |||
+ | **9. Testat** | ||
+ | # which lli | ||
+ | |||
+ | # which clang | ||
+ | |||
+ | La final ar trebui să putem folosi direct binarele de llvm 3.8 | ||
+ | |||
+ | [1] http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz | ||
+ | |||
+ | [2] http://llvm.org/releases/3.8.0/cfe-3.8.0.src.tar.xz | ||
+ | |||
+ | [3] http://llvm.org/releases/3.8.0/compiler-rt-3.8.0.src.tar.xz | ||
+ | |||
+ | |||
+ | |||
+ | ===== Documentație ===== | ||
+ | |||
+ | * Documentație utilă pentru cursul și laboratorul de Compilatoare : | ||
+ | {{section>cpl:res:materiale&noheader&nofooter&noindent}} | ||
===== Social media ===== | ===== Social media ===== | ||
* [[https://www.facebook.com/compilatoare|Pagina cursului de Facebook]] | * [[https://www.facebook.com/compilatoare|Pagina cursului de Facebook]] | ||