Compilers

Wat wordt bepaald bij de levendigheidsanalyse (liveness analysis) die als voorbereiding op registertoewijzing wordt uitgevoerd?

  1. AIn het hele programma het regelnummer waarop elke variabele is gedeclareerd
  2. BHet maximum en minimum van de waarden van variabelen
  3. COp elk moment of die waarde later nog kan worden gebruikt
Antwoord en toelichting tonen

Antwoord: C. Op elk moment of die waarde later nog kan worden gebruikt

Bij levendigheidsanalyse wordt voor elk moment in het programma met de controleflowgraaf bepaald of een waarde hierna nog kan worden gelezen (leeft). Waarden die leven moeten in een register worden bewaard, terwijl het register van een waarde die niet meer wordt gebruikt voor een andere waarde kan worden hergebruikt. Waarden die gelijktijdig leven kunnen niet in hetzelfde register staan, zodat uit dit resultaat de interferentiegraaf wordt opgebouwd. Het is geen analyse van de plaats van declaratie of het waardebereik.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Compilers

  1. 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?
  2. 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.)
  3. Welke algemene volgorde waarin uit een C-programma een uitvoerbaar bestand ontstaat is juist?
  4. 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?
  5. Welke combinatie van een optimalisatie die na het inlinen van sq in de bovenstaande code volgt en het resultaat daarvan is juist?

Vergelijkingen bij dit onderwerp