Articles of llvm

tout outil de refacturation C / C ++ basé sur libclang? (exemple de jouet le plus simple)

Comme je l’ai souligné – ici – il semble que la libclang de Clang soit idéale pour la tâche difficile qui est l’parsing de code C / C ++ et les modifications ( consultez la présentation vidéo et les diapositives ). Connaissez-vous un outil de refactoring C / C ++ basé sur libclang? “Any” inclut […]

Pourquoi llvm est-il considéré comme inapproprié pour mettre en œuvre un JIT?

De nombreux langages dynamics implémentent (ou souhaitent implémenter) un compilateur JIT pour accélérer leurs temps d’exécution. Inévitablement, quelqu’un de la galerie de l’arachide demande pourquoi il n’utilise pas LLVM. La réponse est souvent: “LLVM ne convient pas à la construction d’un JIT”. (Par exemple, le commentaire d’Armin Rigo ici. ) Pourquoi LLVM est-il inapproprié pour […]

Liaison FFI et DSL

Dans les liaisons Haskell LLVM , j’essaie de définir une fonction avec un nombre variable d’arguments (en fait, je veux dire un nombre constant qui n’est pas connu à la compilation). J’ai trouvé cette question et j’essaie de suivre la réponse. Je ne veux pas utiliser complètement le FFI pour générer des LLVM, je veux […]

Comment appeler des méthodes ou exécuter du code dans le débogueur LLDB?

Je sais que je peux print someFloatVariable quand je définis un point d’arrêt ou un po [self someIvarHoldingAnObject] , mais je ne peux pas faire des choses utiles comme: [self setAlpha:1]; Puis il crache: error: ‘[self’ n’est pas une commande valide. Chose étrange, je peux appeler po [self someIvarHoldingAnObject] et il imprimera sa description. Je […]

Comment détecter LLVM et sa version via les directives #define?

La question est assez claire je pense. J’essaie d’écrire un en-tête de détection du compilateur pour pouvoir inclure dans l’application des informations sur le compilateur utilisé et la version. Cela fait partie du code que j’utilise: /* GNU C Comstackr Detection */ #elif defined __GNUC__ #ifdef __MINGW32__ #define COMPILER “MinGW GCC %d.%d.%d” #else #define COMPILER […]

Comment C – se compare-t-il à LLVM?

Après avoir appris un peu comment fonctionnent les LLVM, je suis vraiment enthousiasmé par la façon dont le code portable de bas niveau peut être généré et par la façon dont cette «chose» est modulaire. Mais j’ai découvert aujourd’hui l’existence de C– qui semble partager certains concepts avec LLVM. Je recherche donc des informations pour […]

Quelles sont les différences entre LLVM et Java Bytecode?

Je ne comprends pas la différence entre LLVM et le java (bytecode), qu’est-ce que c’est? -edit-by ‘what are that’ Je veux dire les différences entre LLVM et Java (bytecode), pas ce que sont LLVM et Java.

clang: comment lister les architectures cibles supscopes?

Actuellement, je m’intéresse à ARM en général et spécifiquement aux cibles iphone / android. Mais je veux juste en savoir plus sur le clang, car il a l’impression de jouer un rôle important dans les années à venir. j’ai essayé clang -cc1 –help|grep -i list clang -cc1 –help|grep arch|grep -v search clang -cc1 –help|grep target […]

Que fait exactement l’instruction PHI et comment l’utiliser dans LLVM?

LLVM a une instruction phi avec une explication assez étrange: L’instruction ‘phi’ est utilisée pour implémenter le noeud φ dans le graphe SSA représentant la fonction. En général, il est utilisé pour implémenter des twigments. Si j’ai bien compris, il est nécessaire d’parsingr les dépendances et, dans certains cas, d’éviter un chargement inutile. Cependant, il […]

suggestion de conception: llvm multiples contextes d’exécution

Mon application doit exécuter plusieurs contextes distincts dans le même processus (mono-thread). Ils partagent tous un seul LLVMContext . Le processus exécutera de nombreux contextes (au sens du thread); c’est-à-dire que chacun exécute une fonction dans un object de continuation basé sur boost::context (toujours dans un coffre, lib pré-approuvé) cela signifie que chaque contexte peut […]