Snellere Open-Source software

8 mei 2005

Op 20 april is door lead-programmeur Mark Mitchell GCC 4.0 officieel
vrijgegeven. Deze versie van de compilatiesoftware is de opvolger van
GCC 3.x, dat gebruikt wordt voor het compileren van vrijwel alle
open-sourcesoftware voor Linux.


Een van de nieuwe features
in versie 4.0 van de software is een nieuw optimalisatieframework. GCC
3 is in staat om kleine lokale gedeeltes uit een groter geheel van
programmacode te optimaliseren. De nieuwe versie van de GNU Compiler
Collection, zoals GCC voluit heet, is ook in staat om datastructuren te
vinden in grotere stukken code. Hierdoor kan beter bepaald worden welke
objecten in het on-chipgeheugen geladen moeten worden en welke delen in
het tragere interne geheugen geladen moeten worden. De naam van deze
technologie is Tree SSA, wat staat voor static single assignment.

Verder introduceert GCC 4.0 een feature genaamd Mudlap, waarmee in een
programma gecontroleerd wordt op buffer overruns. Dit heeft echter een
negatief effect op de performance van software en is daardoor met name
interessant voor debugversies. Ten slotte zouden onder meer
C(++)-programma’s met de nieuwe compiler een performancewinst moeten
laten zien. Een feature die waarschijnlijk in GCC 4.1 aanwezig zal
zijn, is ‘autovectorization’. Deze feature zorgt ervoor dat waar
mogelijk floating-pointberekeningen automatisch worden omgezet naar
vectorberekeningen, zodat gebruikgemaakt kan worden van de
hardwarematige vectorunits die onderdeel zijn van processors met
SIMD-optimalisaties. Denk hierbij onder andere aan SSE, SSE2 en SSE3
van Intel, Altivec van IBM en 3DNow van AMD. Verder zal in een latere
versie ook functionaliteit voor de Fortran 95-programmeertaal worden
toegevoegd. Deze programmeertaal wordt veel gebruikt bij de
ontwikkeling van wetenschappelijke en technische programma’s.

GCC logoGCC 4.0 is echter nog steeds in een ‘work in progress’ en het
zal daarom nog wel enige tijd duren voordat performancevoordelen
zichtbaar zullen worden, aldus Mitchell. Dit heeft er onder meer mee te
maken dat de GCC-code nog niet voldoende is getweakt, zoals GCC 3 dat
al wel is. Dat GCC 4.0 desondanks toch een goede compiler is, blijkt
uit een review
die auteur en programmeur Scott Ladd gepubliceerd heeft. Uit de
resultaten van zijn onderzoek blijkt dat GCC 4.0 op dit moment vrijwel
gelijk of iets langzamer presterende code produceert ten opzichte van
GCC 3.4. Dat is volgens Ladd ook niet zo heel raar, omdat dit de eerste
officile release is van de GCC 4.0 en dat zeker in de toekomst, als in
programma’s meer gebruikgemaakt zal worden van de nieuwe mogelijkheden
voor codeoptimalisatie, gebruik van GCC 4.0 zeker voordelen zal hebben.

Share This:

Leave a Reply

Your email address will not be published. Required fields are marked *