You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Indeed, it seems we skip checking operands on branch instructions: link
The stated reason there is that we don't want to check block arguments as normal uses, because we handle them separately (translating to ParallelMove checker instructions); but there's no reason we can't iterate over non-block-arg operands and handle them normally. I'm happy to review a PR for that if you want to try! Or alternately I'm happy to make the change.
@Amanieu ah, yes, thanks for that reminder; would you be willing to separate out the checker changes in #170 from the blockparam restrictions and post them in a separate PR?
It's possible for vregs to be used or defined in branch instructions, but the fuzzer doesn't seem to check for these operands.
The following doesn't pass the fuzzer:
And this does:
Which is incorrect.
To reproduce this, run the tests in
src/fastalloc/tests.rs
at https://github.com/d-sonuga/regalloc2/tree/975dee0ceb56bbc6cbd21554a237babe1e388573.To resolve this issue, one of the following could be done:
The text was updated successfully, but these errors were encountered: