-
Notifications
You must be signed in to change notification settings - Fork 38
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
Support instructions that clobber all registers and have non-fixed uses #145
Comments
…l` calling convention This is a workaround to fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60035 in the meantime, until bytecodealliance/regalloc2#145 is fixed. Co-Authored-By: Jamey Sharp <[email protected]> Co-Authored-By: Trevor Elliott <[email protected]>
…l` calling convention This is a workaround to fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60035 in the meantime, until bytecodealliance/regalloc2#145 is fixed. Co-Authored-By: Jamey Sharp <[email protected]> Co-Authored-By: Trevor Elliott <[email protected]>
…l` calling convention This is a workaround to fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60035 in the meantime, until bytecodealliance/regalloc2#145 is fixed. Co-Authored-By: Jamey Sharp <[email protected]> Co-Authored-By: Trevor Elliott <[email protected]>
…l` calling convention (#6632) This is a workaround to fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60035 in the meantime, until bytecodealliance/regalloc2#145 is fixed. Co-authored-by: Jamey Sharp <[email protected]> Co-authored-by: Trevor Elliott <[email protected]>
My comment in #146 should probably have gone here; I think there's a way to do this more generally, by doing splits in a more general way (in the middle of insts) and leveraging overlap support. |
Work around bytecodealliance/regalloc2#145 in the same way that we do for tail calls -- using a fixed use constraint.
Work around bytecodealliance/regalloc2#145 in the same way that we do for tail calls -- using a fixed use constraint.
Work around bytecodealliance/regalloc2#145 in the same way that we do for tail calls -- using a fixed use constraint.
* Emit fixed use constraints for indirect call destinations Work around bytecodealliance/regalloc2#145 in the same way that we do for tail calls -- using a fixed use constraint. * Add tests to exercise indirect calls with the winch calling convention
The interesting thing with this issue is that it isn't limited to a single Additionally, under similar circumstances I was able to reach the panic here https://github.com/bytecodealliance/regalloc2/blob/main/src/ion/process.rs#L1266 |
There are currently special cases for when an instruction uses a fixed register and clobbers it, but when an instruction uses an unconstrained register and clobbers all registers there is no special case and we get a
TooManyLiveRegisters
error. This can be avoided by adding an unnecessary fixed register constraint so that the first special case is hit, but one shouldn't have to constrain the register allocation in that way, regalloc2 should just handle this case.The text was updated successfully, but these errors were encountered: