Was sind die größten Vorteile von LLVM? [closed]

Lesezeit: 4 Minuten

Kevins Benutzeravatar
Kevin

Hat jemand Erfahrung mit LLVM, llvm-gccoder Klirren?

Die ganze Idee hinter llvm scheint mir sehr faszinierend zu sein und ich bin daran interessiert zu sehen, wie es funktioniert. Ich möchte nur nicht viel Zeit damit verbringen, die Tools auszuprobieren, wenn die Tools nicht produktionsreif sind.

Wenn Sie Erfahrung mit den Tools haben, was halten Sie davon? Auf welche wesentlichen Einschränkungen sind Sie gestoßen? Was sind die größten Vorteile?

Danke vielmals!

Ich kann nicht genug gute Dinge über LLVM sagen. Es ist so einfach, damit zu arbeiten, verglichen mit anderen Compiler-Projekten, die ich mir angesehen habe. Ich bin kein Compiler-Typ, aber wenn ich mit einer Einschränkung von LLVM oder Clang frustriert bin, ist es normalerweise ziemlich einfach, einzutauchen und sie zu ändern.

Wir (Nate Begeman, ich und ein paar andere) haben das PPC-Backend ohne wirkliche Erfahrung im Compiler-Design geschrieben, aber es sah so einfach aus, dass Laien damit umgehen konnten. Wir waren mit der PPC-Assemblierung ziemlich vertraut, aber es war immer noch ziemlich unglaublich, dass wir es geschafft haben, LLVM-gcc in ein paar Wochen unserer Freizeit dazu zu bringen, PPC-Code auszugeben. Definitiv eines der befriedigendsten Hello Worlds, die ich je zusammengestellt habe.

Benutzeravatar von JD
JD

Ich spiele jetzt seit vielen Monaten immer wieder mit LLVM. Ich habe zwei geschrieben OCaml Journal Artikel zur Verwendung von LLVM aus dem OCaml Programmiersprache. Das ist besonders interessant, da die OCaml-Sprache ideal zum Schreiben von Compilern ist und über eine Fülle von leistungsstarken und ausgereiften Tools und Bibliotheken zum Parsen und so weiter verfügt.

Insgesamt sind meine Erfahrungen äußerst positiv. LLVM hält, was es verspricht, und ist sehr einfach zu bedienen. Die Leistung des generierten Codes ist hervorragend. Eines der Programme, die ich geschrieben habe, war ein einfacher kleiner Brainf*ck-Compiler, der einige der schnellsten ausführbaren Dateien aller von mir getesteten Compiler (einschließlich GCC) generiert.

Ich habe nur zwei Probleme mit LLVM. Erstens verwendet es abort() immer dann, wenn etwas schief geht, anstatt eine Ausnahme auszulösen. Dies war eine bewusste Designentscheidung seiner Autoren, die bestrebt sind, alle Verwendungen von Ausnahmen aus LLVM zu entfernen, aber es macht es unmöglich, Rückverfolgungen von OCaml zu erhalten, wenn versucht wird, einen Compiler zu debuggen, der LLVM verwendet: Ihr Programm stirbt einfach mit einer Texterklärung von LLVM aber keine Ahnung, wo der Fehler in Ihrer Quelle aufgetreten ist. Zweitens ist die kompilierte Bibliothek von LLVM ungeheuer groß (20 MB). Ich nehme an, dass dies auf das Aufblähen von C++ zurückzuführen ist, aber es macht die Kompilierung schmerzhaft langsam.

BEARBEITEN: Meine Arbeit an LLVM gipfelte in der Erstellung einer hochleistungsfähigen virtuellen Maschine mit Garbage-Collection auf hohem Niveau. Kostenfreier Download hier und schau dir das entsprechende an Maßstäbe (Beeindruckend!). @Alex: Ich werde diesen BF-Compiler so schnell wie möglich für Sie bereitstellen.

  • Kannst du den BF-Compiler posten? Ich habe einen BF->C-Übersetzer geschrieben, der meiner Meinung nach so gut ist, wie man ihn in einem einzigen Durchgang bekommen kann, und llvm-gcc fällt in wirklich großen Programmen ziemlich schlecht aus. Allerdings sind sie irgendwie unfair.

    – Alex seltsam

    25. Dezember 2008 um 19:58 Uhr

Ich habe ein erstes Herumspielen mit LLVM gehabt und durchgearbeitet dieses Tutorial hat mich sehr, sehr aufgeregt über sein Potenzial zurückgelassen; Die Idee, dass ich damit ein JIT relativ einfach in eine App einbauen kann, hat mich begeistert.

Ich bin nicht tief genug gegangen, um eine nützliche Meinung zu Einschränkungen, Stabilität, Leistung und dergleichen abgeben zu können. Ich verstehe, dass es in jeder Hinsicht gut ist, aber das ist reines Hörensagen.

Benutzeravatar von Petri Tuononen
Petri Tuononen

Sie haben nach Tools gefragt, und ich möchte erwähnen, dass es ein LLVM-Plugin für Eclipse CDT (für Windows, Linux und Mac) gibt. Es integriert LLVM gut in IDE und der Benutzer muss nichts über LLVM wissen. Das Drücken der Build-Schaltfläche reicht aus, um .bc- und ausführbare Dateien (und Zwischendateien im Hintergrund, die für den Benutzer nicht sichtbar sind) zu erstellen.

Die neueste Version ist über die offizielle Eclipse-Update-Site verfügbar: http://download.eclipse.org/releases/mars

Es befindet sich unter Programmiersprachen und heißt “C/C++ LLVM-Family Compiler Build Support”.

1405660cookie-checkWas sind die größten Vorteile von LLVM? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy