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
[LoopUnrollAndJam] Instruction does not dominate all uses! #58565
Labels
Comments
Looks like this is caused by LoopUnrollAndJam: https://llvm.godbolt.org/z/PWovdoWrx, possibly the same issue as #50005 |
fhahn
changed the title
Instruction does not dominate all uses!
[LoopUnrollAndJam] Instruction does not dominate all uses!
Nov 22, 2022
fix submitted for review https://reviews.llvm.org/D140255 |
caojoshua
added a commit
to caojoshua/llvm-project
that referenced
this issue
Jan 5, 2023
Fixes llvm#58565 The previous implementation visits operands in pre-order, but this does not guarantee an instruction is visited before its uses. This can cause instructions to be copied in the incorrect order. For example: ``` a = ... b = add a, 1 c = add a, b d = add b, a ``` Pre-order visits does not guarantee the order in which `a` and `b` are visited. LoopUnrollAndJam may incorrectly insert `b` before `a`. This patch implements post-order visits. By visiting dependencies first, we guarantee that an instruction's dependencies are visited first. Differential Revision: https://reviews.llvm.org/D140255
CarlosAlbertoEnciso
pushed a commit
to SNSystems/llvm-debuginfo-analyzer
that referenced
this issue
Jan 6, 2023
Fixes llvm/llvm-project#58565 The previous implementation visits operands in pre-order, but this does not guarantee an instruction is visited before its uses. This can cause instructions to be copied in the incorrect order. For example: ``` a = ... b = add a, 1 c = add a, b d = add b, a ``` Pre-order visits does not guarantee the order in which `a` and `b` are visited. LoopUnrollAndJam may incorrectly insert `b` before `a`. This patch implements post-order visits. By visiting dependencies first, we guarantee that an instruction's dependencies are visited first. Differential Revision: https://reviews.llvm.org/D140255
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Not sure if this is the loop pass unroll-and-jam or a later optimization that messes up...
testcase.tar.gz
The text was updated successfully, but these errors were encountered: