Compilers
Welke optimalisatie wordt het best mogelijk gemaakt door link-time optimization (LTO)?
- AInlining enz. is ook mogelijk tussen functies in afzonderlijke bestanden
- BAlleen lussen binnen één functie kunnen worden uitgerold
- CLinken is niet meer nodig en objectbestanden kunnen rechtstreeks worden uitgevoerd
Antwoord en toelichting tonen
Antwoord: A. Inlining enz. is ook mogelijk tussen functies in afzonderlijke bestanden
Bij gewoon compileren wordt elk bronbestand afzonderlijk naar machinecode omgezet, zodat de inhoud van functies in andere bestanden niet zichtbaar is en inlining of constantpropagatie over bestanden heen niet mogelijk is. Bij LTO blijft elk bestand als tussenrepresentatie bewaard en wordt tijdens het linken het hele programma gezamenlijk geoptimaliseerd. Daardoor zijn inlining over bestanden heen en het verwijderen van functies die nergens worden aangeroepen mogelijk. Het uitrollen van lussen binnen één functie kan ook bij gewoon compileren.