dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.91k stars 4.63k forks source link

[LSRA] Avoid splitting loop backedges #9909

Open CarolEidt opened 6 years ago

CarolEidt commented 6 years ago

In general, edge splitting in the LSRA resolution phase is problematic, but it is especially so across loop backedges. These high-weight edges should have fixed var-to-reg assignments, and resolution, as needed, should be done in the lower-weight blocks.

category:cq theme:register-allocator skill-level:expert cost:medium

erozenfeld commented 5 years ago

dotnet/coreclr#17554 has a test case for this issue.

CarolEidt commented 4 years ago

https://github.com/dotnet/runtime/issues/10145