Sono uno studente che lavora all'ottimizzazione di GCC per il processore multi-core. Ho provato a passare attraverso il codice sorgente, è difficile seguirlo poiché ho bisogno di aggiungere del codice al back-end. Qualcuno può suggerire qualche buona risorsa che spiega il flusso del codice attraverso le diverse fasi. Suggerire inoltre un ambiente di sviluppo per il debug di GCC principalmente per scorrere il codice. È possibile su Windows?un puntatore per capire il codice sorgente GCC
risposta
Come punto di partenza vedere Links and Selected Readings sul sito GCC. Di particolare interesse per voi, credo, sono:
- GNU C Compiler Internals
- Compilation of Functional Programming Languages using GCC -- Tail Calls da Andreas Bauer
- Porting GCC for Dunces da Hans-Peter Nilsson
Se si vuole sviluppare su Windows è probabilmente necessario per iniziare da MinGW (Minimalist GNU per Windows) Fonti di Compiler Suite (include GNU GDB debugger), che è una porta di GCC per Windows.
Per un ambiente di sviluppo confortevole non posso fare molto perché non sviluppo in C++. Ma suppongo che un buon IDE per C/C++ sia ciò di cui hai bisogno: dai uno sguardo allo this comparison, ci sono molti IDE liberi/open source per Windows.
Aggiornamento: Penso ICI può anche essere di interesse per voi:
Il Interactive Compilation Interface (o 'ICI' in breve) è un sistema di plugin con un alto livello indipendente dal compilatore e basso livello API dipendente dal compilatore per trasformare i compilatori correnti in collaborativi toolset interattivi modulari aperti. Il framework ICI funge da interfaccia "middleware" tra il compilatore ei plug-in definibili dall'utente . Si apre e riutilizza la produzione di qualità delle infrastrutture compilatore per consentire analisi del programma e la strumentazione, a grana fine ottimizzazioni di programma, semplice prototipazione di nuovo sviluppo e la ricerca di idee, evitando costruzione di nuovi strumenti di compilazione da zero. Ad esempio, viene utilizzato in GET MILEPOST per automatizzare il compilatore e il programma di progettazione dell'architettura e le ottimizzazioni del programma basate sull'analisi statistica e sull'apprendimento automatico. È compilatori adattabili a eterogenei, compilatori adattabili, architetture multi-core che vanno dai supercomputer ai sistemi incorporati.
.. come il resto dei progetti sotto l'ombrello Collective TUNING.
Nota: Scrivere "i compilatori sono uno dei programmi più complessi che ci siano", come ha scritto BlueRaja nei commenti, è un'esagerazione: ci sono compilatori molto semplici e compilatori molto complessi. Ma nella teoria del compilatore (una volta che l'hai studiato) non c'è nulla di esoterico. GCC è un programma complesso per comprendere come qualsiasi BIG, programma scarsamente documentato là fuori . Quindi rizwanhudda non si scoraggia: inizia a studiare la documentazione disponibile e poi chiedi agli sviluppatori GCC (su GCC irc channel, come suggested by nvl o GCC developers mailing list) di spiegare cosa è documentato (o non lo è affatto).
- In effetti program comprehension è un campo di ricerca attivo.
Grazie. è stato davvero molto utile. – rizwanhudda
Prego. – MaD70
Ti suggerisco di utilizzare lo GCC irc channel, è pensato per la discussione sullo sviluppo di GCC.
- 1. Grammatica C nel codice sorgente GCC
- 2. C++: Capire "questo" puntatore
- 3. Cercando di capire un errore di GCC
- 4. GCC segnala puntatore funzione puntatore oggetto Cast
- 5. compilazione del codice sorgente su 2 diverse versioni di gcc
- 6. C codice sorgente libreria
- 7. estrarre automaticamente i percorsi -I gcc per il codice sorgente indicizzazione in Emacs
- 8. ClearCase per il controllo del codice sorgente?
- 9. Ottenere il codice sorgente di un iframe
- 10. Come generare un file XMI per il codice sorgente java?
- 11. Golang: proteggere il codice sorgente
- 12. Ignorare il codice sorgente nel debugger
- 13. Come funziona il codice sorgente Python "free_list = (PyIntObject *) Py_TYPE (v);" sposta il puntatore free_list sull'oggetto successivo?
- 14. Codice sorgente per app Android?
- 15. Esistono strumenti per trasformare il codice sorgente in C++ nel codice sorgente in C/C++, ma con modelli istanziati (srotolati)?
- 16. Codice Java: ricerca del codice sorgente
- 17. Come iniziare a modificare il codice sorgente per Chromium?
- 18. Dove trovare il codice sorgente per il percentile di NumPy
- 19. Dove nel codice sorgente GCC viene compilato per le diverse lingue di assemblaggio?
- 20. di Cachegrind non visualizza l'annotazione per il mio codice sorgente
- 21. Eclipse: è possibile modificare il codice sorgente Java conosciuto tramite il codice sorgente "allegato"
- 22. Come si esegue il preprocessore GCC per ottenere il codice dopo l'estensione di macro come #define?
- 23. Funzioni GCC pure/const che accettano un argomento del puntatore
- 24. gcc non avvisa il codice irraggiungibile
- 25. Puntatore funzione con GCC, assegnazione di un indirizzo
- 26. Come scaricare il codice sorgente di Eclipse?
- 27. Stampa il codice sorgente su Windows
- 28. Strumento di annotazione codice sorgente
- 29. Come ottengo il codice sorgente di Ubuntu?
- 30. annotazione Perf, visualizza solo il codice sorgente
Hai mai seguito un corso di compilatore o letto il libro del drago? Se "no" a entrambi, non è probabile che tu capisca il codice - i compilatori sono uno dei programmi più complessi che ci siano. –
Sì, ho preso il corso di compilatori e ho anche letto il libro del drago [non completamente però]. Tuttavia, cercare di capire GCC è difficile come hai detto. – rizwanhudda
Ho seguito un corso sui compilatori. Cos'è il libro del drago? – Daniel