2010-03-23 13 views
6

Ich bin Student arbeitet an der Optimierung von GCC für Multi-Core-Prozessor. Ich habe versucht, den Quellcode durchzugehen, es ist schwierig, ihn zu durchlaufen, da ich etwas Code zum Backend hinzufügen muss. Kann jemand eine gute Ressource vorschlagen, die den Code-Fluss durch die verschiedenen Phasen erklärt. Geben Sie auch eine Entwicklungsumgebung zum Debuggen von GCC an, um hauptsächlich den Code zu durchlaufen. Ist es unter Windows möglich?ein paar Zeiger zum Verständnis GCC-Quellcode

+3

Haben Sie jemals einen Compiler-Kurs belegt oder das Drachenbuch gelesen? Wenn beide nicht stimmen, werden Sie den Code wahrscheinlich nicht verstehen - Compiler sind eines der komplexesten Programme, die es gibt. –

+2

Ja, ich habe den Compiler-Kurs belegt und lese auch das Drachenbuch [nicht komplett]. Aber wie auch immer Sie versuchen, GCC zu verstehen, ist eine Herausforderung. – rizwanhudda

+0

Ich habe einen Compiler-Kurs belegt. Was ist das Drachenbuch? – Daniel

Antwort

7

Als Ausgangspunkt siehe Links and Selected Readings auf GCC-Site. Von besonderem Interesse für Sie, glaube ich, sind:

Wenn Sie unter Windows entwickeln, möchten Sie wahrscheinlich brauchen von MinGW (minimalistisch GNU für Windows) Compiler Suite-Quellen (es enthält GNU GDB Debugger), die ein Anschluss von GCC an Windows ist.

Für eine komfortable Entwicklungsumgebung kann ich nicht viel helfen, da ich nicht in C++ entwickle. Aber ich denke, eine gute IDE für C/C++ ist, was Sie brauchen: Werfen Sie einen Blick auf this comparison, gibt es viele freie/Open-Source-IDEs für Windows.

Update: Ich denke ICI auch für Sie von Interesse sein können:

Die Interactive Compilation Schnittstelle (oder 'ICI' abgekürzt) ist ein Plugin System mit einem High-Level Compiler-unabhängige und Low-Level Compiler-abhängige API zu transformieren aktuelle Compiler in gemeinsame offene modulare interaktive Toolsets. Das ICI-Framework fungiert als "Middleware" Schnittstelle zwischen dem Compiler und den benutzerdefinierbaren Plugins. Es öffnet mich und verwendet die Produktionsqualität Compiler-Infrastruktur Programmanalyse und Instrumentierung, feinkörnige Programmoptimierung, einfachen Prototyping neuer Entwicklung und Forschungsideen zu ermöglichen, während Bau neue Kompilierungstools von Kratzern zu vermeiden. Zum Beispiel wird es in MILEPOST GCC verwendet, um Compiler und Architektur Design und Programm Optimierungen basierend auf statistischen Analyse und maschinelles Lernen zu automatisieren. Es Compiler anpassbar an heterogene, rekonfigurierbare, Multi-Core Architekturen von Supercomputer zu eingebetteten Systemen ermöglichen.

.. wie der Rest der Projekte unter der Collective TUNING Regenschirm.

Hinweis: Schreiben "Compiler sind eine der komplexesten Programme, die es gibt", wie BlueRaja in Kommentaren schrieb, ist eine Übertreibung: Es gibt sehr einfache Compiler und sehr komplexe Compiler. Aber in der Compiler-Theorie (sobald Sie es studiert haben) gibt es nichts Esoterisches. GCC ist ein komplexes Programm zu verstehen, wie auch immer BIG, schlecht dokumentiertes Programm da draußen . So rizwanhudda nicht entmutigt werden: Studieren Sie die Dokumentation verfügbar und dann fragen GCC-Entwickler (auf GCC IRC-Kanal, wie suggested by nvl oder GCC developers mailing list), um zu erklären, was schlecht (oder gar nicht) dokumentiert ist.

  1. Tatsächlich ist program comprehension ein aktives Forschungsgebiet.
+0

Danke. Das war wirklich sehr hilfreich. – rizwanhudda

+0

Gern geschehen. – MaD70

1

Ich würde vorschlagen, dass Sie die GCC irc channel verwenden, ist es für die Diskussion der Entwicklung von GCC gedacht.