IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Compilation C++ avec LLVM et clang - Partie 1 : générer du code C++ dynamiquement depuis Lua [Tutoriel]


Sujet :

C++

  1. #1
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut Compilation C++ avec LLVM et clang - Partie 1 : générer du code C++ dynamiquement depuis Lua
    Chers membres du club,

    J'ai le plaisir de vous présenter ce tutoriel d'Emmanuel ROCHE :


    L'objectif de ce tutoriel d'Emmanuel Roche est de vous apprendre à générer du code C++ dynamiquement depuis Lua.
    Bonne lecture

    Retrouvez Les meilleurs cours et tutoriels pour apprendre le C++.

  2. #2
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut Partie 2 : construire un compilateur C++ JIT fonctionnel avec LLVM
    Chers membres du club,

    J'ai le plaisir de vous présenter la deuxième partie de ce tutoriel 'Emmanuel ROCHE :


    Dans mon article précédent sur ce sujet, j’ai décrit comment j’ai essayé d’utiliser LLVM et clang pour exécuter certains tests préliminaire de compilation C++ dynamique. Maintenant, dans ce post, je veux pousser ce concept un peu plus loin et construire un compilateur JIT fonctionnel, que je puisse éventuellement utiliser en production, soit directement, soit depuis du code C++ ou Lua ou d’autres interfaces.
    Bonne lecture

    Retrouvez Les meilleurs cours et tutoriels pour apprendre le C++.

  3. #3
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut Compilation C++ JIT*avec LLVM - Partie 3 : Corriger le crash du ModulePassManager
    Chers membres du club,

    J'ai le plaisir de vous présenter la troisième partie de ce tutoriel d'Emmanuel ROCHE :


    Si vous avez lu mon article précédent sur ce sujet (Compilateur C++ JIT avec LLVM - Partie 2), vous avez probablement noté qu’il y avait un sérieux problème avec l’implémentation de NervJIT que j’ai décrite (et aussi dans l’implémentation expérimentale de runClang() décrite dans le tout premier article) : je ne pouvais pas libérer les ressources de la passe d’optimisation IR (Intermediate Representation : représentation intermédiaire), ni non plus l’objet llvm::orc::LLJIT, car tenter de le faire produisait des plantées silencieuses. Dans ce nouveau post, nous nous concentrerons sur les étapes que j’ai suivies pour me débarrasser finalement de ce problème.
    Alors, allons-y !😀
    Bonne lecture

    Retrouvez Les meilleurs cours et tutoriels pour apprendre le C++.

  4. #4
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut Compilation C++ JIT avec LLVM - Partie 4 : dépendance à l’environnement d’exécution C
    Chers membres du club,

    J'ai le plaisir de vous présenter la quatrième partie de ce tutoriel d'Emmanuel ROCHE :


    Dans l'article précédent sur ce sujet, nous avons vu comment corriger les plantées du module d’optimisation de la représentation intermédiaire (IR) ou les fuites de mémoire dues à une mauvaise configuration de construction. Maintenant, dans ce billet, je veux évoquer les problèmes que j’ai rencontrés lors d’une compilation JIT légèrement plus avancée*: l’idée de base était de vérifier que nous pouvons vraiment nous fier à des bibliothèques externes provenant de notre code JIT compilé, ce qui est évidemment une caractéristique clé. Et ceci s’est révélé loin d’être aussi facile que je le pensais…😀
    Bonne lecture

    Retrouvez Les meilleurs cours et tutoriels pour apprendre le C++.

  5. #5
    Community Manager

    Avatar de Malick
    Homme Profil pro
    Community Manager
    Inscrit en
    Juillet 2012
    Messages
    9 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Community Manager
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 9 231
    Points : 85 299
    Points
    85 299
    Billets dans le blog
    15
    Par défaut Compilation C++ JIT avec LLVM - Partie 5 : Bitcode, PCH, gestion des exceptions, liaison des modules et plus…
    Chers membres du club,

    J'ai le plaisir de vous présenter la cinquième partie de ce tutoriel d'Emmanuel ROCHE :


    Voilà maintenant quelque temps que je vous présentais mon dernier article sur mes expériences avec le compilateur JIT. J’ai beaucoup joué avec ce code ces derniers jours . Si vous ne vous en souvenez pas, mon but premier était de pouvoir générer du code C++ directement depuis le langage de scripting Lua.

    C’est exactement ce que j’ai fait, et en passant j’ai construit un “frontal” pour mon compilateur en Lua, qui évolue encore et que j’utilise maintenant pour exécuter la plupart de mes tests. Au cours de cette démarche j’ai aussi travaillé sur la génération d’entêtes précompilés (PCH), les constructeurs et destructeurs de modules LLVM, les tests unitaires C++ depuis des scripts, la gestion d’exceptions, et les soucis de liaison des modules. Je pense donc qu’il est grand temps d’arrêter de coder un moment et d’essayer de partager ce que j’ai appris sur tous ces points dans l’hypothèse que ceci puisse intéresser quelqu’un (ou en réalité, juste pour que je me souvienne de ce que j’ai fait si je dois y revenir un jour ).
    Bonne lecture

    Retrouvez Les meilleurs cours et tutoriels pour apprendre le C++.

Discussions similaires

  1. LLVM et Clang s'apprêtent à faire un bond en avant avec OpenCL et CUDA
    Par dourouc05 dans le forum Coprocesseurs et calcul hétérogène
    Réponses: 2
    Dernier message: 24/04/2018, 09h21
  2. [E-03] Générer un tableau croisé dynamique depuis un UserForm
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/01/2009, 21h32
  3. Comment générer du code vba dynamiquement ?
    Par Filippo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/08/2008, 12h35
  4. [Debutant(e)]Générer du code JSP dynamiquement
    Par Gibier dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/01/2004, 12h54
  5. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo