-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
Tail call miscompiled by FastISel #53243
Labels
Comments
It looks like the TCRETURN gets emitted properly, but then gets dropped by this piece of code: llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Lines 1564 to 1570 in 197f3c0
|
Candidate patch: https://reviews.llvm.org/D117489 |
mem-frob
pushed a commit
to draperlaboratory/hope-llvm-project
that referenced
this issue
Oct 7, 2022
… scheduling (PR53243) EmitSchedule() shouldn't be touching instructions after the provided insertion point. The change introduced in D83561 performs a scan to the end of the block, and thus may move unrelated instructions. In particular, this ends up moving instructions that have been produced by FastISel and will later be deleted. Moving them means that more instructions than intended are removed. Fix this by stopping the iteration when the insertion point is reached. Fixes llvm/llvm-project#53243. Differential Revision: https://reviews.llvm.org/D117489
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Running https://gist.github.com/nikic/b6c45e5eeac03ef1fd842353815ceba4 through
llc -O0
results in an entirely empty function, while it should have ajmp set_state@PLT
.It works fine without the dbg.value, or without the
tail
annotation. It also works fine with-fast-isel=0
.The text was updated successfully, but these errors were encountered: