-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
IR verification error during testing of Parsers.jl #52857
Labels
bug
Indicates an unexpected problem or unintended behavior
compiler:optimizer
Optimization passes (mostly in base/compiler/ssair/)
Comments
maleadt
added
bug
Indicates an unexpected problem or unintended behavior
compiler:optimizer
Optimization passes (mostly in base/compiler/ssair/)
labels
Jan 11, 2024
Actually, here's the MWE slightly tweaked so that it retains the original verification error: struct Result
val
Result(x) = new()
end
function foo(f)
if whatever
f.e
else
Result(code)
end
end
function parse(Type, f)
res = foo(sizeof)
fin ? res.val : nothing
end
struct CustomType end
parse(CustomType, identity)
|
Keno
added a commit
that referenced
this issue
Jan 12, 2024
There is a bit of complexity here making sure that this instruction ends up in the correct basic block because there's a fair number of corner cases (e.g. whether we're deleting the first instruction of a basic block or the last or both). Side-step all that by never doing the delete-then-insert dance and instead doing regular instruction replacement if necessary. Fixes #52857.
Keno
added a commit
that referenced
this issue
Jan 12, 2024
There is a bit of complexity here making sure that this instruction ends up in the correct basic block because there's a fair number of corner cases (e.g. whether we're deleting the first instruction of a basic block or the last or both). Side-step all that by never doing the delete-then-insert dance and instead doing regular instruction replacement if necessary. Fixes #52857.
Keno
added a commit
that referenced
this issue
Jan 13, 2024
There is a bit of complexity here making sure that this instruction ends up in the correct basic block because there's a fair number of corner cases (e.g. whether we're deleting the first instruction of a basic block or the last or both). Side-step all that by never doing the delete-then-insert dance and instead doing regular instruction replacement if necessary. Fixes #52857.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
bug
Indicates an unexpected problem or unintended behavior
compiler:optimizer
Optimization passes (mostly in base/compiler/ssair/)
As seen during testing of Parsers.jl with
-g2
:Reduced to:
The verification error here is different, however, it looks related to me because of the
throw_undef_if_not
, and more importantly because both bisect to the same PR: #52338; cc @Keno @aviateskThe text was updated successfully, but these errors were encountered: