Skip to content

Conversation

@ro-i
Copy link
Contributor

@ro-i ro-i commented Mar 24, 2025

In case there is an dynamic alloca / an alloca which is not in the entry block, cs.chain functions don't setup an FP, but are reported to need one. This results in a failed assertion in
SIFrameLowering::emitPrologue() (Assertion (!HasFP || FPSaved) && "Needed to save FP but didn't save it anywhere"' failed.) This commit changes hasFPImpl` so that the need for an SP in a cs.chain function does not directly imply the need for an FP anymore.

This LLVM defect was identified via the AMD Fuzzing project.

(@rovka as discussed :) )

In case there is an dynamic alloca / an alloca which is not in the entry
block, cs.chain functions don't setup an FP, but are reported to need
one. This results in a failed assertion in
`SIFrameLowering::emitPrologue()` (Assertion `(!HasFP || FPSaved) &&
"Needed to save FP but didn't save it anywhere"' failed.) This commit
changes `hasFPImpl` so that the need for an SP in a cs.chain function
does not directly imply the need for an FP anymore.

This LLVM defect was identified via the AMD Fuzzing project.
@ro-i ro-i requested a review from rovka March 24, 2025 11:00
@ro-i
Copy link
Contributor Author

ro-i commented Mar 25, 2025

Closed for now since the IR is invalid for gfx942

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.

1 participant