Runtime: LLVM-Backend

Erstellt am 11. Mai 2019  ·  3Kommentare  ·  Quelle: dotnet/runtime

Gemäß diesem von mir erstellten Problem (https://github.com/dotnet/coreclr/issues/17294) ist das Erstellen eines neuen Backends für eine neue Architektur eine komplexe Aufgabe. Warum also nicht ein neues Backend erstellen, das mehrere Architekturen unterstützt?
Mono hat ein LLVM-Backend implementiert.
Ich sage das, weil die Power- und s390x-Architektur mit relativer Intensität zurückkehrt ...

area-CodeGen-coreclr question

Hilfreichster Kommentar

Vor einigen Jahren haben wir an einem LLVM-Codegenerator für .Net: LLILC gearbeitet . Wir stießen auf eine Reihe von Problemen, die anscheinend nur schwer zu lösen waren: Unterstützung für präzise GC, vollständige Unterstützung für das .Net-Ausnahmemodell und geringer Durchsatz. Einige Details können Sie hier nachlesen :

Mono über LLVM verwendet konservative GC und behandelt (zumindest in einigen Fällen) nicht alle Ausnahmeverhaltensweisen. Dies ist für die Anwendungsziele von Mono akzeptabel, für unsere Zwecke jedoch nicht allgemein genug.

LLILC könnte immer noch als Jit der oberen Klasse (eines Tages) oder als Aufmachungsfahrzeug interessant sein, um das grundlegende Codegen auf einer neuen Architektur zum Laufen zu bringen.

Alle 3 Kommentare

Vor einigen Jahren haben wir an einem LLVM-Codegenerator für .Net: LLILC gearbeitet . Wir stießen auf eine Reihe von Problemen, die anscheinend nur schwer zu lösen waren: Unterstützung für präzise GC, vollständige Unterstützung für das .Net-Ausnahmemodell und geringer Durchsatz. Einige Details können Sie hier nachlesen :

Mono über LLVM verwendet konservative GC und behandelt (zumindest in einigen Fällen) nicht alle Ausnahmeverhaltensweisen. Dies ist für die Anwendungsziele von Mono akzeptabel, für unsere Zwecke jedoch nicht allgemein genug.

LLILC könnte immer noch als Jit der oberen Klasse (eines Tages) oder als Aufmachungsfahrzeug interessant sein, um das grundlegende Codegen auf einer neuen Architektur zum Laufen zu bringen.

Hallo @AndyAyersMS

Ich habe ein einfaches Build-Problem für LLILC https://github.com/dotnet/llilc/issues/1097 behoben

Bitte überprüfen sie es.

Vielen Dank,
Leslie Zhai

Ich werde dieses Problem schließen, da die Frage beantwortet wurde.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen