A compiler optimization algorithm that deals with aggressive strength
reduction of integer machine instructions found in loops. The algorithm
permits the strength reduction of such machine instructions whose
execution may be guarded by predicate values. In addition, the algorithm
allows the strength reduction of address calculations consumed by memory
reference instructions accessing data in a segmented virtual address
space. The algorithm also permits aggressive SSA-based strength reduction
of non-address integer computations found in loops that are linear
functions of loop induction variables. The algorithm incorporates
profitability considerations by reducing the cost of updating
strength-reduction temporaries and ensures that the strength-reduction
transformation results in an overall reduction of the path-lengths within
loop bodies, without creating excessive register pressure.
Een algoritme van de compileroptimalisering dat agressieve sterktevermindering van de instructies van de geheelmachine die in lijnen worden gevonden behandelt. Het algoritme laat de sterktevermindering van dergelijke machineinstructies de waarvan toe uitvoering door predikaatwaarden kan worden bewaakt. Bovendien staat het algoritme de sterktevermindering van adresberekeningen die door de instructies worden verbruikt toe die van de geheugenverwijzing tot gegevens in een gesegmenteerde virtuele adresruimte toegang hebben. Het algoritme laat ook agressieve in ssa-Gebaseerde sterktevermindering van de berekeningen van het niet-adresgeheel die in lijnen worden gevonden toe die lineaire functies van de variabelen van de lijninductie zijn. Het algoritme neemt rentabiliteitsoverwegingen door de kosten van bijwerkende sterkte-vermindering tijdelijke werkkrachten op te drukken en zorgt ervoor dat de sterkte-vermindering transformatie in een algemene vermindering van de lengtes van het parcours binnen lijnorganismen, zonder bovenmatige registerdruk te creƫren resulteert.