2011-10-25 10 views
6

L'opzione Gcc -fdump-tree-optimized scarica una versione ottimizzata del codice C come file C. C'è un modo per fare lo stesso usando il compilatore icc di Intel?Intel icc: come eseguire il dump del codice ottimizzato come file C

Ho un codice di moltiplicazione matrice che ho compilato come icc -O3 -ipo mult.c. Voglio vedere come il compilatore ha eseguito le ottimizzazioni. Se non funziona nulla, quindi genererò il codice assembly per il programma.

+0

Se si tratta di un'applicazione "reale" diversa dal divertimento personale, si sta molto meglio (in termini di prestazioni e tempo di sviluppo) utilizzando una libreria esistente che implementa Matrix Multiplo Generale, come GNU Scientific Library o altro implementazione della libreria BLAS – TJD

+0

Nopes, questo fa parte di un progetto di classe che insegna le ottimizzazioni del compilatore e argomenti simili. – jitihsk

risposta

2

Tecnicamente, -fdump-tree-optimized NON discarica una rappresentazione C, ma una rappresentazione parziale testuale del codice Gimple utilizzato all'interno GCC (Gimple è la rappresentazione interna di mezza fine delle istruzioni, in cui la maggior parte GCC passa ottimizzazione bersaglio indipendente operano) .

Ma icc è un compilatore proprietario (una scatola nera), quindi dal punto di vista del provider, non è interessante (per Intel) mostrare come funziona icc.

GCC ha la capacità di mostrare le sue rappresentazioni interne, perché è un software libero. I compilatori proprietari non vogliono mostrare come funzionano.

Se questa è una classe, si potrebbe provare anche LLVM. (Ma non so come si faccia a rovesciare le rappresentazioni interne all'interno).

E, ancora più importante, se si tratta di una classe, è possibile suggerire allo studente di utilizzare GCC 4.6 per sviluppare un plug-in o un'estensione GCC MELT per esplorare e sperimentare ottimizzazioni. MELT è un linguaggio di dominio di alto livello per estendere GCC e offre molte funzionalità per facilitare tali attività.

Problemi correlati