• IT-Karriere:
  • Services:

Google: Portable-Native-Client-Code für LLVM

Emscripten nutzt für sein neues Backend Fastcomp Bestandteile aus Googles Portable Native Client. Diese Bestandteile sollen nun auch im Hauptzweig von LLVM bereitstehen, um die Arbeit der Projekte zu vereinfachen.

Artikel veröffentlicht am ,
Teile von Google PNaCL sollen in LLVM eingepflegt werden.
Teile von Google PNaCL sollen in LLVM eingepflegt werden. (Bild: LLVM)

Das neue Emscripten-Backend Fastcomp verwendet die Compile-Schritte von Googles Portable Native Client (PNaCL). Deshalb wäre es für die Zusammenarbeit beider Projekte hilfreich, wenn diese Code-Bestandteile im Hauptzweig von LLVM verfügbar wären statt in einem eigenen Entwicklungszweig. Deshalb diskutiert ein Google-Entwickler mit dem LLVM-Team über die Möglichkeit zur Aufnahme des Codes.

Stellenmarkt
  1. KRATZER AUTOMATION AG, Unterschleißheim
  2. Technische Universität Darmstadt, Darmstadt

Der von Google geschriebene Code soll den LLVM-eigenen wesentlich vereinfachen, indem komplexe Funktionen auf einfachere heruntergebrochen werden. Der Code von Google sei zudem modular aufgebaut. So könnten weitere Projekte entscheiden, welche der Einzelteile sie unterstützen wollen. Zudem sei der Code durch die Modularität einfach zu warten und zu testen.

Code vielfach verwendbar

Emscripten oder auch jedes andere Projekt kann diese Funktionen von Google verwenden, um ein neues LLVM-Backend zu schreiben. Dabei werde die Anzahl der verschiedenen Möglichkeiten, die das Backend beachten muss, aber im Vergleich zum jetzigen LLVM-Code deutlich reduziert - was Emscripten-Entwickler Alon Zakai in der Diskussion bestätigt.

Zakai sieht auch weitere Szenarien, in denen LLVM-Zwischencode (IR) einfach in etwas anderes übersetzt werden soll. So könnten Studenten etwa Compiler-Optimierungen gelehrt werden, indem diese LLVM IR in eine ihnen schon bekannte Sprache übersetzen müssten.

Googles PNaCl kompiliert C- und C++-Code ebenfalls in eine Zwischenschicht, die eine Teilmenge von LLVMs IR ist. So wird architekturabhängiger Code erzeugt, der in eine portable, ausführbare Datei gepackt werden kann, um "native" Web-Apps zu erstellen. Das Android-Projekt Renderscript nutzt ebenfalls die IR von PNaCL.

Ob der Code von Google letztendlich in LLVM landet, ist noch nicht entschieden. So hegen einige Entwickler etwa große Zweifel an dem Vorhaben.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Anzeige
Mobile-Angebote
  1. 304€ (Bestpreis!)
  2. 274,49€ (mit Rabattcode "PFIFFIGER" - Bestpreis!)
  3. 328€ (mit Rabattcode "YDENUEDR6CZQWFQM" - Bestpreis!)
  4. 689€ (mit Rabattcode "PRIMA10" - Bestpreis!)

Folgen Sie uns
       


Assassin's Creed Valhalla angespielt

Im Video zeigt Golem.de selbst aufgenommenes Gameplay aus Assassin's Creed Valhalla. In dem Actionspiel treten die Spieler als Wikinger in England an.

Assassin's Creed Valhalla angespielt Video aufrufen
SSD vs. HDD: Die Zeit der Festplatte im Netzwerkspeicher läuft ab
SSD vs. HDD
Die Zeit der Festplatte im Netzwerkspeicher läuft ab

SSDs in NAS-Systemen sind lautlos, energieeffizient und schneller: Golem.de untersucht, ob es eine neue Referenz für Netzwerkspeicher gibt.
Ein Praxistest von Oliver Nickel

  1. Firecuda 120 Seagate bringt 4-TByte-SSD für Spieler

Xbox, Playstation, Nvidia Ampere: Wo bleiben die HDMI-2.1-Monitore?
Xbox, Playstation, Nvidia Ampere
Wo bleiben die HDMI-2.1-Monitore?

Trotz des Verkaufsstarts der Playstation 5 und Xbox Series X fehlt von HDMI-2.1-Displays jede Spur. Fündig werden wir erst im TV-Segment.
Eine Analyse von Oliver Nickel


    Energiewende: Wie die Begrünung der Stahlindustrie scheiterte
    Energiewende
    Wie die Begrünung der Stahlindustrie scheiterte

    Vor einem Jahrzehnt suchte die europäische Stahlindustrie nach Technologien, um ihren hohen Kohlendioxid-Ausstoß zu reduzieren, doch umgesetzt wurde fast nichts.
    Eine Recherche von Hanno Böck

    1. Wetter Warum die Klimakrise so deprimierend ist

      •  /