-
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
[NVPTX] Possible Infinite Loop introduced by [NVPTX] Allow using v4i32 for memcpy lowering.
#63294
Comments
Also, this is my first time submitting a bug to LLVM. Please let me know if there are any conventions that I should be following. |
Thank you for reporting it. The comment for the
I guess the "supported" part is open to interpretation. v4i32 is certainly supported for some operations. But I can see how it will break users implicitly assuming that it would always change the type. |
Thanks for the prompt response, explanation, and revert @Artem-B. Closing the issue. |
Reverted in eb4f0d9 |
I believe that I've found an infinite loop introduced by [NVPTX] Allow using v4i32 for memcpy lowering..
Pinging @Artem-B the author of that commit.
The following input causes
llc
to timeout in Compiler Explorer:I was also able to observe the infinite loop on my local (modified) fork of LLVM.
This seems to be the code that's causing the infinite loop (link to the source code):
When debugging the code I saw that
getTypeToTransformTo
would always setVT
toMVT::v4i32
because of "[NVPTX] Allow using v4i32 for memcpy lowering.". Yet,getTypeAction(Ctx, MVT::v4i32)
returnsTypeSplitVector
, notTypeLegal
. Thus, causing an infinite loop.CC @jholewinski NVPTX code owner.
The text was updated successfully, but these errors were encountered: