Compiler
Welche Hauptwirkung von Loop Unrolling (Schleifenentfaltung) ist richtig?
- ADer Aufwand für Zählerprüfung und Verzweigung sinkt, und Befehle lassen sich leichter umordnen
- BDer Schleifenrumpf besteht nur noch aus einer Iteration, und der Programmcode wird kleiner
- CDie Schleife wird als Funktion herausgelöst und kann von anderen Stellen aufgerufen werden
Antwort und Erläuterung anzeigen
Antwort: A. Der Aufwand für Zählerprüfung und Verzweigung sinkt, und Befehle lassen sich leichter umordnen
Loop Unrolling ist eine Optimierung, die den Schleifenrumpf z. B. viermal aneinanderreiht und die Zahl der Iterationen auf ein Viertel verringert. Zählerprüfung und Verzweigungsbefehle werden weniger, und da Befehle der aneinandergereihten Rümpfe kombiniert und umgeordnet werden können, lassen sich Wartezeiten von Operationen leichter auffüllen. Dafür wird der Code größer und belastet mitunter den Instruktionscache. Dass der Rumpf nur einmal vorkommt und der Code kleiner wird, ist die umgekehrte Beschreibung, und das Herauslösen der Schleife als Funktion ist eine andere Transformation.