Skip to content
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

Make regalloc2 panic-clean: always return errors when impossible constraints occur #2

Open
cfallin opened this issue Sep 1, 2021 · 1 comment

Comments

@cfallin
Copy link
Member

cfallin commented Sep 1, 2021

Right now, the allocator can panic if the client provides impossible constraints, such as requiring two different operands to be placed in the same PReg.

While this represents a programming error in the client and shouldn't arise from an invalid input program, it is always better to bubble up errors; we should reserve panic!() and assert!() for conditions that can only be violated due to errors in regalloc2 itself.

@digama0
Copy link

digama0 commented Nov 11, 2021

I will report it here since I think it is a misuse on my part, but I ran into a panic when declaring a call instruction that returns (defines) r0 but also clobbers r0. The meaning of such an instruction is a bit ambiguous, but I guess regalloc interprets it as an impossible constraint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants