[Coroutines] Remove unused coroutine builtin/intrinsics llvm.coro.param (NFC-ish)
authorChuanqi Xu <yedeng.yd@linux.alibaba.com>
Thu, 9 Dec 2021 06:37:05 +0000 (14:37 +0800)
committerChuanqi Xu <yedeng.yd@linux.alibaba.com>
Thu, 9 Dec 2021 06:40:25 +0000 (14:40 +0800)
commit352e36e10d2cff310cacfc98aab39d508682e61d
tree5df7524249f56d35df6eb9c2e2fed3ae827888f6
parent6d7c9c3d0e78815fc54246dd2d233d3900d22e1c
[Coroutines] Remove unused coroutine builtin/intrinsics llvm.coro.param (NFC-ish)

I found that the coroutine intrinsic llvm.coro.param in documentation
(https://llvm.org/docs/Coroutines.html#id101) didn't get used actually
since there isn't lowering codes in LLVM. I also checked the
implementation of libstdc++ and libc++. Both of them didn't use
llvm.coro.param. So I am pretty sure that the llvm.coro.param intrinsic
is unused. I think it would be better t to remove it to avoid possible
misleading understandings.

Note: according to [class.copy.elision]/p1.3, this optimization is
allowed by the C++ language specification. Let's make it someday.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D115222
clang/docs/LanguageExtensions.rst
clang/include/clang/Basic/Builtins.def
clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGenCoroutines/coro-builtins.c
llvm/docs/Coroutines.rst
llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
llvm/include/llvm/IR/Intrinsics.td
llvm/lib/Transforms/Coroutines/Coroutines.cpp