Ottimizzazione del codice C / C ++ senza compilazione

-3

Dato un semplice ciclo in C o C ++ come il seguente:

for (int i=0, j=0; i<5; i=i*2){
   j=j+i*1;
}

Vorrei usare uno strumento (gcc, clang o qualsiasi altro) per ottimizzare il codice senza compilarlo realmente. Voglio solo vedere il mio codice sorgente ottimizzato. È disponibile uno strumento del genere?

    
posta Daniel 21.10.2018 - 03:27
fonte

2 risposte

6

L'ottimizzazione è una parte del processo di compilazione / collegamento. Non puoi davvero separarlo da quel processo. La soluzione migliore è guardare il codice di assemblaggio effettivo creato dal compilatore. Per quanto riguarda l'impatto reale dell'ottimizzazione, questo è il risultato che conta.

Probabilmente il più noto nel mondo C ++ è il Compiler Explorer di Matt Goldbolt online dove puoi compilare e guardare l'assemblaggio creato da un ampio varietà di compilatori, piattaforme e impostazioni. Inoltre, si ottiene una mappatura visiva piuttosto buona tra le righe nel codice C ++ e l'assembly corrispondente.

Mi sembra di ricordare vagamente che Visual Studio ha una modalità simile che mostra assembly mappati al codice sorgente. Se questo è il tuo IDE, potresti volerlo esaminare.

    
risposta data 21.10.2018 - 12:32
fonte
1

A seconda di dove vuoi fermarti lungo la strada, la rappresentazione intermedia di LLVM potrebbe essere ciò che stai cercando. Tuttavia, richiede di eseguire clang e potrebbe non essere quello che stai cercando.

    
risposta data 21.10.2018 - 03:55
fonte

Leggi altre domande sui tag