Login
Newsletter
Werbung

Thema: PCC nähert sich der Fertigstellung

2 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von Anonymous am Mi, 23. Februar 2011 um 22:26 #

Die Argumentation überzeugt mich nicht. Zwar kostet es Performance, einen Compiler retargetable zu machen, zumindest wenn man mehr als nur das Compilerfrontend wiederverwenden will. Der Hauptgrund dafür ist aber, dass man nicht direkt von der Quell- in die Zielsprache übersetzt, sondern über eine Zwischensprache geht. Und diesen Schritt muss man ja nur einmal gehen, also ist es egal, ob ein Compiler zwei Architekturen unterstützt oder 20.

gcc verfügt übrigens nicht nur über eine, sondern drei Zwischensprachen: GENERIC, GIMPLE und RTL. Während des Übersetzungsprozesses wird zwischen GENERIC und GIMPLE hin- und hergewandelt, weil einige Optimierungen auf der einen Sprache arbeiten, und einige auf der anderen (zumindest war das der Zustand vor wenigen Jahren). Dass all das einigermaßen ineffizient ist, brauche ich wohl nicht zu erwähnen. Hinzu kommt, dass auch die Frontends im gcc ziemlich langsam ist, wenn man es z. B. mit clang vergleicht. Naja, es ist halt alles historisch gewachsen.

[
| Versenden | Drucken ]
  • 0
    Von Andi Pandi am Do, 24. Februar 2011 um 22:36 #

    Ich glaube, die Diskussionen ueber die Performance vom GCC im Vergleich zu LLVM und anderen Compilern gibt es schon seit laengerem und immer wieder wird behauptet, dass GCC auf einem absteigenden Ast und in Zukunft durch glorreiche andere Projekte verdraengt wird. Aber letztendlich glaube ich, dass GCC noch auf sehr lange Zeit von grosser Bedeutung sein wird, nicht zuletzt weil er DAS Fundament des GNU-Projektes ist, dessen Teil eben auch der Linux kernel ist. Und schliesslich ist es doch so, dass viele der anderen Compiler sich am GCC bei gewissen Features ausrichten (z.B. __attribute__ Syntax).

    Sicherlich ist es, dass manch anderer Compiler mehr Optimierungsfeatures bietet, aber GCC ist auch da auf einem guten Weg. Die letzten Jahre gab es einige Grundlegenden Aenderungen in der internen Darstellungen von Programmen. Also gebt den GCC nicht zu frueh auf!!!!

    @Anonymous Coward: keine Ahnung was dein letzter Stand ist (kein Vorwurf :-)), aber mittlerweile wird von GENERIC (baum-basiert) in GIMPLE (tupel-basiert) uebersetzt, aber es wird nicht mehr hin- und herkonvertiert. Gut moeglich, dass es mal frueher der Fall war.

    [
    | Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung