aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorXun Li <lxfind@gmail.com>2021-01-18 09:06:21 -0800
committerXun Li <lxfind@gmail.com>2021-01-18 09:06:21 -0800
commit1d04dc52dd24d791970e56053cdd67fe149b0554 (patch)
treebdec20ce72937d5fc139dcb4213dce4ba507c3a1 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parent275716d6db79a6da3d5cee12139dd0c0abf8fd07 (diff)
downloadllvm-1d04dc52dd24d791970e56053cdd67fe149b0554.zip
llvm-1d04dc52dd24d791970e56053cdd67fe149b0554.tar.gz
llvm-1d04dc52dd24d791970e56053cdd67fe149b0554.tar.bz2
[Coroutine] Do not CoroElide if there are musttail calls
This is to address https://bugs.llvm.org/show_bug.cgi?id=48626. When there are musttail calls that use parameters aliasing the newly created coroutine frame, the existing implementation will fatal. We simply cannot perform CoroElide in such cases. In theory a precise analysis can be done to check whether the parameters of the musttail call actually alias the frame, but it's very hard to do it before the transformation happens. Also in most cases the existence of musttail call is generated due to symmetric transfers, and in those cases alias analysis won't be able to tell that they don't alias anyway. Differential Revision: https://reviews.llvm.org/D94834
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions