Compilers
In een functie bedraagt het grootste aantal gelijktijdig levende waarden 5. Als de interferentiegraaf buiten deze 5 geen beperkingen oplegt, hoeveel registers zijn dan minstens nodig om alle waarden zonder spill in registers te plaatsen?
- A5
- B4
- C10
Antwoord en toelichting tonen
Antwoord: A. 5
De 5 gelijktijdig levende waarden interfereren allemaal met elkaar, zodat de 5 knopen in de interferentiegraaf allemaal door bogen verbonden zijn (een volledige graaf) en minstens 5 kleuren nodig zijn om te kleuren. In een eenvoudig geval waarin levensduren als intervallen kunnen worden weergegeven, zoals bij rechtlijnige code, kan met het maximale aantal gelijktijdig levende waarden aan kleuren worden gekleurd, zodat 5 registers volstaan. Met 4 is ergens een spill nodig, waarbij een waarde naar het geheugen wordt weggeschreven. 10 is meer dan nodig.