einige Zeiger auf Verständnis GCC Quellcode
-
22-09-2019 - |
Frage
Ich bin Student arbeitet an GCC für Multi-Core-Prozessor zu optimieren. Ich habe versucht, durch den Quellcode gehen, ist es schwierig, durch sie zu folgen, da ich einige Code zum Backend hinzufügen müssen. Kann jemand empfehlen, eine gute Ressource, die den Code Fluss durch die verschiedenen Phasen erklärt. Auch vorschlagen, eine Entwicklungsumgebung für das Debuggen von GCC in erster Linie auf Schritt durch den Code. Ist es möglich, auf Windows?
Lösung
Als Ausgangspunkt finden Sie unter Links and Selected Readings auf GCC-Website . Von besonderem Interesse für Sie, glaube ich, ist:
- GNU C Compiler Internals
- Compilation funktionaler Programmiersprachen mit GCC - Endrekursion von Andreas Bauer
- Porting GCC für Dunces von Hans-Peter Nilsson
Wenn Sie unter Windows entwickeln, die Sie wahrscheinlich starten müssen von MinGW (Minimalist GNU for Windows) Compiler Suite Quellen (es enthält GNU Debugger GDB), die eine Portierung von GCC zu Windows ist.
Für eine komfortable Entwicklungsumgebung ich nicht viel helfen kann, weil ich nicht entwickeln in C ++. Aber ich eine gute IDE für C / C ++ nehme an, was Sie brauchen: einen Blick auf dieser Vergleich gibt es viele freie / Open-Source-IDEs für Windows.
Update: Ich denke, ICI können von Interesse für Sie auch:
Die Interaktive 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 kollaborativen offene modulare interaktive Toolset. Das ICI Rahmen fungiert als „Middleware“ Schnittstelle zwischen den Compiler und der benutzerdefinierbare Plugins. Sie eröffnet und verwendet die Produktionsqualität Compiler-Infrastruktur zu ermöglichen, Programmanalyse und Instrumentierung, feinkörnige Programmoptimierung, einfaches Prototyping neuer Entwicklungs und Ideen erforschen, während die Vermeidung Bau neuer Kompilierungstools aus kratzen. Zum Beispiel wird es verwendet in MILEPOST GCC Compiler zu automatisieren und Architektur-Design und Programm Optimierungen auf der Grundlage statistischer Analyse und maschinelles Lernen. Es sollte universelle Selbstoptimierung ermöglichen Compiler anpassungsfähig an heterogenen, rekonfigurierbaren, mehradrigen Architekturen im Bereich von Supercomputer auf eingebettete Systeme.
.. wie der Rest von Projekten im Rahmen der Collective TUNING Regenschirm.
Hinweis: Schreiben „Compiler sind eine der komplexesten Programme gibt es“, wie BlueRaja in den Kommentaren schrieb, ist eine Übertreibung: Es gibt sehr einfache Compiler und sehr komplexe Compiler. Aber in Compiler-Theorie (wenn man es studiert haben) gibt es nichts esoterisch. GCC ist ein komplexes Programm zu verstehen, wie alles, was BIG , schlecht dokumentiert Programm gibt 1 . So rizwanhudda nicht entmutigen lassen: Starten Sie die Dokumentation zur Verfügung zu studieren und dann GCC-Entwickler fragen (auf GCC IRC-Kanal, wie vorgeschlagen von NVL oder GCC-Entwickler-Mailingliste ) zu erklären, was schlecht ist (oder gar nicht) dokumentiert.
- In der Tat Programmverständnis ein aktives Forschungsgebiet ist.
Andere Tipps
Ich würde Ihnen vorschlagen, die benutzen GCC IRC-Kanal ist gemeint, für die Diskussion Entwicklung von GCC.