2016-12-07 3 views
1

Je me demande si LLVM en vertu de sa nouvelle conception est de remplacer GCC dans le monde open-source?GCC est-il remplacé par LLVM?

LLVM devrait comporter plusieurs techniques d'inspection de code, de sorte que les IDE soient plus faciles à programmer, mais GCC devrait quand même être bon en termes de performances.

+3

Je vote pour clore cette question hors-sujet car il ne s'agit pas d'un problème de programmation résoluble spécifique. –

Répondre

3

Réponse courte:N ° Ils sont tous deux largement utilisés en fonction du contexte.

Réponse longue:

depends, il est une question d'adoption, ainsi que d'autres facteurs. Par exemple, Apple utilise LLVM (et Clang) pour à peu près tout, y compris la construction du noyau (précédemment construit en utilisant GCC), le bootloader et l'espace utilisateur. En plus de cela, LLVM est utilisé dans les pilotes graphiques pour compiler les shaders en bytestreams SGX USSE, bien que ce soit en grande partie un cas de eating your own dogfood. En plus de cela, LLVM est également utilisé dans des projets Open Source, par exemple in Mesa et dans la compilation Dolphin Emulator for JIT. En dehors de cela, GCC a encore une utilisation prédominante, par exemple, Linux est construit en utilisant GCC et bien qu'il y ait eu des tentatives de build Linux using Clang+LLVM, ils étaient plus expérimentés que n'importe quoi. De plus, dans le monde embarqué, beaucoup d'applications embarquées (par exemple, UBoot et Little Kernel) s'appuient sur les fonctionnalités fournies par les extensions GCC et ne fonctionneront pas avec Clang + LLVM échouant lors de la compilation des objets ou des étapes de liaison. . Pour les applications d'espace utilisateur, cependant, il s'agit en grande partie d'une question personnelle (ou de préférence de votre entreprise) car les deux offrent à peu près les mêmes fonctionnalités, notamment le support SIMD et le support complet de C++ 14 et C11. quelques bogues non résolus ennuyeux quand il s'agit de la prise en charge C++, par exemple, Bug 61636). Les techniques d'inspection de code sont en grande partie fournies par Clang et, d'après mon expérience personnelle, ont fourni une quantité substantielle de surdébit (par exemple dans Qt Creator et moins dans XCode).

+0

Ai-je bien compris que GCC est "ancien" dans la conception, alors que LLVM tente de corriger certains de ses défauts? De plus, LLVM facilite-t-il l'écriture d'un compilateur? – user111854