-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unmark loop align regardless if we found block to align or not #86198
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsWhen we place For the problem reported in #85839, we were having loop block before loop top and we should have disabled loop alignment for such case, but were not doing it. Because of that we were not able to locate the back-edge of that loop leading to assert. In case it helps to visualize, here is section of basic blocks:
The loop that starts at
Because of this, we don't find the back-edge for
Thanks @AndyAyersMS for the repro. It was very quick to spot the problem. Fixes: #85839
|
/azp run runtime-coreclr libraries-pgo |
@dotnet/jit-contrib |
Azure Pipelines successfully started running 1 pipeline(s). |
Failures is from #85233 |
When we place
align
instructions, there are few scenarios we check where we decide to not align the loop. However, we were incorrectly making that decision only if we don't find a block where we can place the align instruction. Instead, this should be checked regardless if we find such block or not.For the problem reported in #85839, we were having loop block before loop top and we should have disabled loop alignment for such case, but were not doing it. Because of that we were not able to locate the back-edge of that loop leading to assert.
In case it helps to visualize, here is section of basic blocks:
The loop that starts at
BB196
had the loop blockBB197
before the loop top block (BB196
).Because of this, we don't find the back-edge for
IG114
as seen in the assert:Thanks @AndyAyersMS for the repro. It was very quick to spot the problem.
Fixes: #85839