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?

  1. A5
  2. B4
  3. 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.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. Hoeveel keer worden de iteratietest en sprong uitgevoerd als een lus met 100 iteraties wordt herschreven met loop unrolling waarbij de body viermaal achter elkaar wordt gezet? (100 is deelbaar door 4.)
  2. Welke algemene volgorde waarin uit een C-programma een uitvoerbaar bestand ontstaat is juist?
  3. Hoe heet de optimalisatie waarbij een korte reeks gegenereerde machinecode door een klein venster wordt bekeken en onnodige combinaties van instructies door betere instructies worden vervangen?
  4. Welke combinatie van een optimalisatie die na het inlinen van sq in de bovenstaande code volgt en het resultaat daarvan is juist?
  5. Welke uitspraak over software pipelining is juist?

Vergelijkingen bij dit onderwerp