2010-03-23 9 views
6

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

+3

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. –

+2

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

+0

Ho seguito un corso sui compilatori. Cos'è il libro del drago? – Daniel

risposta

7

Come punto di partenza vedere Links and Selected Readings sul sito GCC. Di particolare interesse per voi, credo, sono:

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).

  1. In effetti program comprehension è un campo di ricerca attivo.
+0

Grazie. è stato davvero molto utile. – rizwanhudda

+0

Prego. – MaD70

1

Ti suggerisco di utilizzare lo GCC irc channel, è pensato per la discussione sullo sviluppo di GCC.

Problemi correlati