LLVM-3.5.1

Introduction à LLVM

Le paquet LLVM contient une collection de compilateur modulaire et réutilisable et des technologies de chaînes d'outils. Le cœur des bibliothèques Low Level Virtual Machine (LLVM) fournit un optimiseur moderne de source- et cible- indépendant,ainsi que le support de génération de code pour beaucoup des processeurs populaires (ainsi que quelques autres moins courants!) Ces bibliothèques sont construites autour d'une représentation du code bien connu comme précise la représentation LLVM intermédiaire ("LLVM IR").

Les paquets facultatifs Clang et Compiler RT fournissent de nouvelles interfaces C, C++, C objet et C++ objet et des bibliothèques d'exécution pour LLVM.

[Note]

Note

Ce paquet présente un bogue avec gcc-4.9.0 ou un gcc-4.9.1 non-modifié. Pour construire ce paquet, gcc doit être mis à jour si vous avez une de ses versions. voir GCC-4.9.2 pour les instructions d'installation de gcc.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-7.7.

Informations sur le paquet

  • Téléchargement (HTTP) : http://llvm.org/releases/3.5.1/llvm-3.5.1.src.tar.xz

  • Somme de contrôle MD5 du téléchargement : 2d3d8004f38852aa679e5945b8ce0b14

  • Taille du téléchargement : 12 Mo

  • Estimation de l'espace disque requis : 618 Mo (1.2 Go with Clang) and 78 Mo for the tests

  • Estimation du temps de construction ;

Téléchargements facultatifs

Clang

Compiler RT

Dépendances de LLVM

Recommandées

Facultatives

cmake-3.1.3, Doxygen-1.8.9.1, Graphviz-2.38.0, libxml2-2.9.2, texlive-20140525 (ou install-tl-unx), Valgrind-3.10.1, Zip-3.0, OCaml et Sphinx

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/llvm

Installation de LLVM

Si vous avez téléchargé les paquets facultatifs, installez-les dans l'arborescence des sources :

tar -xf ../cfe-3.5.1.src.tar.xz -C tools &&
tar -xf ../compiler-rt-3.5.1.src.tar.xz -C projects &&
mv tools/cfe-3.5.1.src tools/clang &&
mv projects/compiler-rt-3.5.1.src projects/compiler-rt

Installez LLVM en lançant les commandes suivantes :

sed -e "s:/docs/llvm:/share/doc/llvm-3.5.1:" \
    -i Makefile.config.in &&
CC=gcc CXX=g++                   \
./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --enable-libffi      \
            --enable-optimized   \
            --enable-shared      \
            --disable-assertions &&
make

Si vous avez installé Sphinx et que vous souhaitez générer les pages de manuel, tapez la commande suivante:

make -C docs -f Makefile.sphinx man

Pour testez les résultats, tapez: make check.

Maintenant, en tant qu'utilisateur root :

make install &&
for file in /usr/lib/lib{clang,LLVM,LTO}*.a
do
  test -f $file && chmod -v 644 $file
done

Si vous avez installé Python-2.7.9 et vous avez construit Clang, installez Clang Analyzer en lançant la commande suivante en tant qu'utilisateur root :

install -v -dm755 /usr/lib/clang-analyzer &&
for prog in scan-build scan-view
do
  cp -rfv tools/clang/tools/$prog /usr/lib/clang-analyzer/
  ln -sfv ../lib/clang-analyzer/$prog/$prog /usr/bin/
done &&
ln -sfv /usr/bin/clang /usr/lib/clang-analyzer/scan-build/ &&
mv -v /usr/lib/clang-analyzer/scan-build/scan-build.1 /usr/share/man/man1/

si vous avez constuit les pages de manuel, installez les en lançant la commande suivant en tant qu'utilisateur root :

install -v -m644 docs/_build/man/* /usr/share/man/man1/

Explication des commandes

sed -e ... Makefile.config.in: Ce sed corrige l'emplacement d'installation de la documentation.

--enable-libffi: Ce paramètre initialise LLVM pour utiliser libffi. Effacez le si vous n'avaz pas installé libffi.

--enable-optimized: Ce paramètre active les optimisations du compilateur pour augmenter la vitesse du code et diminuer sa taille.

--enable-shared: Ce paramètre active la construction des bibliothèques partagées de LLVM qui contiennent toutes les bibliothèques statiques liées dans une seule bibliothèque.

--disable-assertions: Désactive quelques vérifications de compilation non utile sur un système de production.

Contents

Programmes installés: bugpoint, c-index-test, clang, clang++ (symlink), count, FileCheck, clang-check, clang-format, clang-tblgen, llc, lli, lli-child-target, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-config, llvm-cov, llvm-diff, llvm-dis, llvm-dwarfdump, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm, llvm-objdump, llvm-profdata, llvm-ranlib (symlink), llvm-readobj, llvm-rtdyld, llvm-size, llvm-stress, llvm-symbolizer, llvm-tblgen, macho-dump, not, opt, scan-build (lien symbolique), et scan-view (lien symbolique)
Bibliothèques installées: BugpointPasses.so, libclang.so, libLLVM-3.5.1.so, libLTO.so, LLVMHello.so and numerous et de nombreuses bibliothèques dans /usr/lib/llvm
Répertoires installés: /usr/include/{clang,clang-c,llvm,llvm-c}, /usr/lib/{clang,clang-analyzer}, /usr/share/doc/llvm-3.5.1, et /usr/share/llvm

Descriptions courtes

bugpoint

est l'outil automatique de réduction des tests de case

clang

est le compilateur Clang de C, C++, et C objet.

llc

est le compilateur statique de LLVM.

lli

est utilisé pour exécuter directement des programmes depuis le binaire LLVM .

llvm-ar

est l'archiveur LLVM.

llvm-as

est l'assembleur LLVM.

llvm-bcanalyzer

est l'analyseyr binaire de LLVM.

llvm-config

Affiche les options de compilation de LLVM.

llvm-cov

est utiliser pour émettre des informations de couverture.

llvm-diff

est le diff de LLVM.

llvm-dis

est le désassembleur de LLVM.

llvm-extract

est utilisé pour extraire une fonction d'un module LLVM.

llvm-link

est le lieur de LLVM.

llvm-nm

est utilisé pour lister des tables de symboles des fichiers binaires et objet de LLVM.

llvm-ranlib

est utilisé pour générer un index pour les archives LLVM.

llvm-stress

est utilisé pour générer des fichiers aléatoires .ll.

llvm-tblgen

est le générateue de description de cible du code C++ de LLVM.

opt

est l'optimiseur de LLVM.

scan-build

est un script Perl qui appelle l'analyseur statique de Clang.

libLLVM-3.5.1.so

contient les fonctions de l'API de LLVM.

Last updated on : 2013-03-06 04:05:17 +010