Skip to content

Exemples présentés à l'introduction à LLVM par Raincode Labs.

Notifications You must be signed in to change notification settings

MarkpageBxl/llvm-intro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction à LLVM : exemples

Prérequis

Ces exemples sont en C et nécessitent une installation de Clang, LLVM et de (GNU) Make. Ils devraient fonctionner même sur des versions plutôt anciennes.

Votre machine doit également être compatible x86_64 (alias amd64), ce qui est extrêmement probable en 2019 :)

Compilation

Il vous suffit d’exécuter la commande :

make

pour que tous les fichiers .c présents dans le dossier soient pris en charge. Les fichiers source C sont compilés en langage intermédiaire LLVM via Clang (fichiers .ll). Le langage d’assemblage résultant est produit dans des fichiers .s via l’utilitaire LLVM llc (LLVM static compiler).

Pour nettoyer les fichiers générés, utiliser la commande suivante :

make clean

Par défaut, le code compile en x86 (alias i386). Pour compiler en 64 bits (et donc produire du langage d’assemblage 64 bits, différent de celui vu en première année), utiliser la commande suivante :

make BITS=64

Pour chaque fichier source C, les fichiers suivants sont produits :

Fichier Description

loop.c

Fichier source en C

loop.o0.ll

Fichier produit en langage intermédiaire LLVM, sans optimisations.

loop.o1.ll

Fichier produit en langage intermédiaire LLVM, avec optimisations légères (-O1)

loop.o2.ll

Fichier produit en langage intermédiaire LLVM, avec optimisations moyennes (-O2)

loop.o3.ll

Fichier produit en langage intermédiaire LLVM, avec optimisations maximales (-O3)

loop.o0.s

Fichier produit en langage d’assemblage, sans optimisations.

loop.o1.s

Fichier produit en langage d’assemblage, avec optimisations légères (-O1)

loop.o2.s

Fichier produit en langage d’assemblage, avec optimisations moyennes (-O2)

loop.o3.s

Fichier produit en langage d’assemblage, avec optimisations maximales (-O3)

About

Exemples présentés à l'introduction à LLVM par Raincode Labs.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published