Domanda

Ho già indagando l'effetto di __restricting alcuni puntatori in C ++ -. Codice, durante la compilazione tramite il GCC-compilatore

Si è scoperto che non solo la fase di esecuzione rimane esattamente la stessa cosa, ma l'eseguibile non sembra essere cambiato, la dimensione in byte è esattamente la stessa di prima.

Il mio GCC-versione è

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

e anche se accetta questo C ++ - estensione durante l'analisi, non sembra considerarlo quando si assembla il codice. Quindi non v'è né una ragione, il compilatore non sa come usare queste informazioni semantiche, l'elaborazione di queste informazioni è completamente disattivato.

Le esegue codice un sacco di calcoli complessi, si vorrebbe avere abilitato a scopo di test. si può aiutare?

È stato utile?

Soluzione

qualificazioni restrict sono fondamentalmente un modo per l'utente di aiutare il compilatore per eseguire determinate ottimizzazioni aliasing-related. Essi avranno effetto solo se queste opportunità di ottimizzazione sono già presenti nel codice, in modo da utilizzare restrict consente semplicemente in situazioni in cui il compilatore aveva in precedenza di utilizzare una generazione di codice "più sicuro" (non-ottimizzazione). In altri contesti restrict non avrà alcun effetto a tutti.

Quindi, si aggiunge alcune qualificazioni restrict al codice. Ma è stato uno di essi utilizzato nel contesto in cui in realtà la materia, vale a dire dove hanno effettivamente dare il compilatore più libertà di ottimizzare il codice? In caso contrario, non si dovrebbe aspettare che il codice per il cambiamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top