-
Notifications
You must be signed in to change notification settings - Fork 10.8k
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
[MachinePipeliner] Store-After-Store order dependency is not considered #72508
Comments
The pipeliner needs to mark store-store order dependences as loop carried dependences. Otherwise, the stores may be scheduled further apart than the MII. The order dependences implies that the first instance of the dependent store is scheduled before the second instance of the source store instruction.
One potential solution - #72575 |
@bcahoon
As can be seen, we would expect the the value in index=0 would be 1, but since the 1st store bypassed the 2nd store by an iteration, the stored value would be 2, due to the 2nd store happening the first time only in the stead-state. |
See reproducer in: https://godbolt.org/z/vEv5r6Md7
We have 2 aliased stores in the loop that have order dependency:
and
But the pipeliner schedules the two stores at different stages (cycle 6, cycle 13, II=4) which is illegal:
The text was updated successfully, but these errors were encountered: