qualche puntatore per la comprensione del codice sorgente GCC
-
22-09-2019 - |
Domanda
Sono studente di lavoro su come ottimizzare il GCC per processori multi-core. Ho provato a passare attraverso il codice sorgente, è difficile da seguire attraverso da quando ho bisogno di aggiungere del codice al back-end. Qualcuno può suggerire qualche buona risorsa che spiega il flusso di codice attraverso le diverse fasi. Anche suggerire qualche ambiente di sviluppo per il debug GCC principalmente al passaggio attraverso il codice. E 'possibile su Windows?
Soluzione
Come punto di partenza vedere Link e letture selezionate sul posto di GCC. Di particolare interesse per voi, credo, sono i seguenti:
- GNU C Compiler Internals
- compilazione di linguaggi di programmazione funzionali utilizzando GCC - Coda chiamate da Andreas Bauer
- Porting GCC per Dunces da Hans-Peter Nilsson
Se si vuole sviluppare su Windows, probabilmente è necessario iniziare da MinGW (Minimalist GNU for Windows) fonti Compiler Suite (include GNU GDB debugger), che è un porto di GCC a Windows.
Per un ambiente di sviluppo confortevole Non posso fare molto perché non sviluppare in C ++. Ma suppongo un buon IDE per C / C ++ è quello che vi serve: dare un'occhiata a questo confronto , ci sono molti liberi / IDE open source per Windows.
Aggiornamento: ICI può essere anche di interesse a voi:
Il Interattivo Compilation Interfaccia (O 'ICI' in breve) è un plugin sistema con un alto livello compilatore indipendente e basso livello compilatore-dipendente API per trasformare compilatori attuali in collaborazione aperte toolsets interattivi modulari. Il quadro ICI agisce come un "middleware" interfaccia tra il compilatore e plugin definibili dall'utente. Si apre e riutilizza la produzione di qualità infrastrutture compilatore per attivare analisi del programma e strumentazione, ottimizzazioni di programma a grana fine, semplice prototipazione di nuovo sviluppo e la ricerca di idee, evitando la costruzione di nuovi strumenti di compilazione da graffiare. Ad esempio, è usato in Milepost GCC per automatizzare compilatore e progettazione dell'architettura e del programma ottimizzazioni sulla base statistica analisi e apprendimento automatico. esso dovrebbe permettere universale self-tuning compilatori adattabili a eterogenea, riconfigurabile multi-core architetture che vanno dal supercomputer ai sistemi embedded.
.. come il resto dei progetti nell'ambito del Collettivo TUNING ombrello.
Nota: di scrittura "compilatori sono uno dei programmi più complessi ci sono", come ha scritto BlueRaja nei commenti, è un'esagerazione: ci sono compilatori molto semplici e compilatori molto complessi. Ma in teoria compilatore (una volta che avete studiato) non c'è nulla di esoterico. GCC è un programma complesso per capire come tutto ciò che programma BIG , scarsamente documentato là fuori 1 . Quindi rizwanhudda non scoraggiatevi: iniziare a studiare la documentazione disponibile e poi chiedere agli sviluppatori di GCC (sul canale irc GCC, come suggerito da nvl o sviluppatori GCC mailing list ) per spiegare ciò che è male (o per niente) documentata.
- programma comprensione è un campo di ricerca molto attivo.
Altri suggerimenti
Vorrei suggerire di utilizzare la GCC canale IRC , si intende per la discussione di sviluppo di GCC.