[llvm-dev] CallSiteSplitting and musttail calls
Fedor Indutny via llvm-dev
llvm-dev at lists.llvm.org
Fri Feb 23 23:16:10 PST 2018
Hello!
I've discovered that `CallSiteSplitting` optimization doesn't support
musttail calls. The easiest fix as it stands is disabling it for such call
sites: https://reviews.llvm.org/D43729 . However, I'm not happy with such
contribution.
My more sophisticated attempt has failed due to my poor understanding of
llvm internals. Here is the attempted patch:
https://gist.github.com/indutny/240c33522563ebd633613a903479d5e6
I'd greatly appreciate any help with it.
Just in case, there're few questions that I'm trying to find answers for:
* Why replacing `removeFromParent()` with `eraseFromParent` breaks the code?
* How to properly remove predecessors from the resulting Tail block?
* How to remove the Tail block itself when we're done?
Thank you,
Fedor.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180224/5dfc1a71/attachment.html>
More information about the llvm-dev
mailing list