The current register allocation selection heuristics are less than optimal. At the very least, they result in poor selection in the face of heavy register pressure, as seen in #8846, and more broadly described in #6824.
The plan for addressing this is:
Future work
Additional issues that should be considered and/or addressed: #7999 (heuristics for incoming parameters), #7996 (include encoding size in heuristics, beyond REG_VAR_ORDER)
General register allocation issues that should be analyzed to determine if tuning the heuristics will address them:
category:cq
theme:register-allocator
skill-level:expert
cost:large
The current register allocation selection heuristics are less than optimal. At the very least, they result in poor selection in the face of heavy register pressure, as seen in #8846, and more broadly described in #6824.
The plan for addressing this is:
COMPlus_variable(s) that will change the order in which heuristics will be applied. Done in Refactor LSRA's heuristics selection #52832COMPlusvariables. Done in Refactor LSRA's heuristics selection #52832Future work
Additional issues that should be considered and/or addressed: #7999 (heuristics for incoming parameters), #7996 (include encoding size in heuristics, beyond
REG_VAR_ORDER)General register allocation issues that should be analyzed to determine if tuning the heuristics will address them:
category:cq
theme:register-allocator
skill-level:expert
cost:large