1. Downloadarea arhivei de LLVM 3.8.0[1] în /home/student/Downloads/
2. Instalarea surselor în /home/student/packages/
# 7z x llvm-3.8.0.src.tar.xz
# tar -xf llvm-3.8.0.src.tar
# mkdir -p /home/student/packages/llvm-3.8.0/build
# mkdir -p /home/student/packages/llvm-3.8.0/install
# mv llvm-3.8.0.src /home/student/packages/llvm-3.8.0/src
3. Downloadarea arhivei de CLANG[2] și compiler-rt[3] în /home/student/Downloads/
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
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
6. Compilarea # make
7. Instalarea
# make install
8. Configurarea variabilelor de mediu în /etc/bash.bashrc
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
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
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.
Conține fundamentele teoretice ale analizei sintactice; utilă și pentru a recapitula noțiunile de la cursul LFA.
O carte foarte bună ce explică structura LLVM și cum să începi să folosești framework-ul în dezvoltarea diverselor aplicații.
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.
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.
Recomandată pentru a înțelege analiza de dependență, algoritmi de vectorizare si paralelizare.
Recomandată pentru a înțelege arhitecturile setului de instrucțiuni și implementarile lor în hardware.
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.