Vorrei definire un set di sequenze di ottimizzazione per un programma C in ingresso per studiare l'impatto delle mie sequenze applicate sulle prestazioni del codice.Ordine di flag di ottimizzazione GCC
esempio:
gcc -fauto-inc-dec -fbranch-count-reg -fcombine-stack-adjustments ... test.c -o out.o
Fa l'ordine di queste opzioni influenzano l'efficacia del codice prodotto?
Inoltre, l'applicazione di un'opzione di ottimizzazione due volte ha un impatto?
Esiste un modo migliore per testare migliaia di sequenze di ottimizzazione? Come in -02 (che comprende circa 20 opzioni), vorrei definire le mie bandiere
hai detto NO. Tuttavia, nel documento scientifico ho trovato questa affermazione: "Nell'ottimizzare i compilatori, è prassi standard applicare lo stesso insieme di fasi di ottimizzazione in un ordine fisso su ogni metodo di un programma. Tuttavia, diversi ricercatori hanno dimostrato che il migliore ordinamento di ottimizzazioni varia all'interno di un programma, per esempio, è specifica funzione. Quindi, vorremmo una tecnica che seleziona il meglio di ordinazione di ottimizzazioni per singole porzioni del programma, piuttosto di applicare lo stesso insieme fisso di ottimizzazioni per l'intero programma . " https://www.eecis.udel.edu/~cavazos/oopsla-2012.pdf – staticx
@staticx: Sì, è corretto che l'ordine di ottimizzazione passi le cose. Tuttavia, l'ordine in cui vengono forniti gli argomenti della riga di comando non influisce sull'ordinamento del passaggio di ottimizzazione in gcc. – janneb
@janneb Non ho molta familiarità con il problema di ordinazione delle fasi di gcc e di ottimizzazione. Ok, diciamo che ho un dato programma C e un elenco di sequenze di ottimizzazione. Come posso eseguire passaggi che influiscono sulla trasformazione del codice? – staticx