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

Stop moving Early FixedReg Use operands in certain conditions when Reuse operands are present. #190

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

Iizerd
Copy link

@Iizerd Iizerd commented Sep 6, 2024

One of the reasons for the panic at here is that Early FixedReg Uses are having their position updated to Late when there is already a Late FixedReg Def or clobber of the fixed PReg. This fixes that by not moving the operand's position if one of these already exist.

It's still possible to cause this behavior if a Late Def operand Reuses an Early FixedReg Def. However that is also easy to fix if Reuse operands are checked to see if they reuse a FixedReg operand.

Thoughts? Am I missing something here? I ran the fuzzer overnight and compiled a few large binaries 200mb plus without fail; All run fine.

@cfallin
Copy link
Member

cfallin commented Sep 6, 2024

I think the new logic makes sense. However, as with #180, which I see is included here as the first commit, could you extend the fuzzer to generate multiple reuse-input defs, and fuzz with that?

@Iizerd
Copy link
Author

Iizerd commented Sep 6, 2024

Yeah sorry about including #180 that again, I probably should have just put this commit in that same PR. This doesn't yet solve all the reason for that panic occurring, there is one more(at least?) I'm working on.

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

Successfully merging this pull request may close these issues.

2 participants