2015-11-17 27 views
9

Sto usando Codeblocks per un programma C su Windows 7. Il programma sta utilizzando la libreria OMP. La versione GCC è 4.9.2. Mingw x86_64-w64-mingw32-gcc-4.9.2.exe.Perché GCC non mostra informazioni di vettorizzazione?

Le bandiere utilizzate sono: -fopenmp -O3 -mfpmath=sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose=2.

Il programma funziona correttamente ma il problema è che non mostra informazioni su quali loop sono stati vettorizzati o meno. Come posso risolverlo?

Corporatura informazioni di log:

-------------- Corporatura: uscita a **** (compilatore: GNU GCC Compiler) ------- --------

x86_64-W64-mingw32-gcc-4.9.2.exe -Wall -O2 -march = Corei7 -fexpensive-ottimizzazioni -O3 -fopenmp -mfpmath = sse -funroll-loops -ftree-loop-distribution -ftree-vectorize -ftree-vectorizer-verbose = 2 -c C: \ Utenti ... \ fc -o obj \ Release \ fo x86_64-w64-mingw32-g ++. exe -o bin \ Rilasciare \ d.exe obj \ Release \ fo obj \ Release \ main.o -s "C: \ Programmi File ... \ libgomp-1.dl l " Il file di output è bin \ Release \ d.exe con dimensione 21.00 KB Processo terminato con stato 0 (0 minuto (i), 0 secondo (i) 0 errore (i), 0 avviso (i) (0) minuto (s), 0 secondo (s))

+0

Giusto per sicurezza, hai guardato il tab 'build log'? 'Crea messaggi' uno potrebbe non avere informazioni di vettorizzazione se CodeBlocks non può analizzarlo. – HolyBlackCat

+0

Sì, ho modificato il messaggio con il registro di build. – Franktrt

risposta

13

CodeBlocks è un IDE. Non compila nulla. GCC lo fa. Il -ftree-vectorizer-verbose utilizzato per funzionare nelle versioni precedenti. Ora c'è -fopt-info, che consente di recuperare informazioni sulle ottimizzazioni (anche la vettorizzazione); è possibile trovare la documentazione pertinente here.

Si è addirittura presentato come recuperare in realtà l'uscita vectorizer a stderr: e questo:

gcc -O2 -ftree-vectorize -fopt-info-vec-missed 

stampe informazioni su opportunità di ottimizzazione perse dalla vettorializzazione passa stderr. Nota che -fopt-info-vec-missed è equivalente a -fopt-info-missed-vec.

È possibile modificare, ad esempio, missed. optimized, all e così via come elencato.

+0

Ora funziona. Prima di cambiare compilatore, avevo quel tipo di informazioni e quindi non riuscivo più a recuperarle. – Franktrt

+0

Un esempio di bandiera che raggiunge questo sarebbe il benvenuto ... la pagina man per la famiglia di opzioni fopt-info è un po 'difficile da trovare. –

+0

@AndrewWagner Ho controllato di nuovo i documenti e sembra che sia cambiato da quando ho postato la risposta, quindi ho aggiornato il collegamento e aggiunto un po 'più di spiegazione. – edmz

Problemi correlati