EMB_81

SOFTWARE | COMPILER EMBEDDED SETTEMBRE 60 A volte gli sviluppatori di software cercano di scrive- re codice sorgente ottimizzato e questo può essere un % ) ) degradare la qualità del programma, dato che l’otti- mizzatore del compilatore non è più in grado di otti- mizzare anche il codice già ottimizzato manualmente, il che potrebbe portare a un’ottimizzazione nel com- plesso inferiore. Nel caso delle ottimizzazioni del compilatore, è pos- sibile operare una distinzione di base tra l’ottimizza- zione dipendente dal target, in cui si opera a livello di istruzione, e l’ottimizzazione indipendente dal target, eseguita a livello di codice sorgente. I trucchi per ottenere un codice snello e veloce André Schmitz Senior Field Application Engineer Green Hills Software O gni anno sono rilasciate nuove versioni di compilatori che promettono di generare codice più compatto del 5% o più veloce del 10%. Che cosa è cambiato? Le versioni precedenti dei com- pilatori sono in qualche modo carenti, o il produttore sfrut- ta dei trucchi pur mantenendo la conformità agli standard? Il presente articolo esamina i con- cetti di base dell’ottimizzazione dei compilatori per i linguaggi C e C ++, e illustra alcuni esempi più tradizionali e più recenti di ottimizzazione, discutendone il Nei progetti di software embedded, l’obiettivo è gene- rare del codice che possa essere eseguito il più veloce- mente possibile, o che offra un’occupazione di memoria il più possibile ridotta. Più rapidamente viene eseguito il codice, più rapida- mente si può rispondere agli eventi, il che migliora il tempo di risposta e la possibilità di utilizzo. Più veloce- mente un task è completato, prima si può passare alla modalità di risparmio energetico e, nel caso dei dispo- sitivi alimentati a batteria, prolungare la durata della batteria stessa. Un codice più compatto consentirebbe di introdurre più funzionalità nella stessa memoria di un dispositivo. Un esame dei concetti di base dell’ottimizzazione dei compilatori per i linguaggi C e C ++ e una descrizione di alcuni esempi di ottimizzazione

RkJQdWJsaXNoZXIy Mzg4NjYz