summaryrefslogtreecommitdiff
path: root/clang/test/CodeGenCoroutines/coro-lambda.cpp
AgeCommit message (Collapse)Author
2025-09-24Reapply "[Coroutines] Add llvm.coro.is_in_ramp and drop return value of ↵Weibo He
llvm.coro.end (#155339)" (#159278) As mentioned in #151067, current design of llvm.coro.end mixes two functionalities: querying where we are and lowering to some code. This patch separate these functionalities into independent intrinsics by introducing a new intrinsic llvm.coro.is_in_ramp. Update a test in inline/ML, Reapply #155339
2025-09-17Revert "Reapply "[Coroutines] Add llvm.coro.is_in_ramp and drop return value ↵Weibo He
of llvm.coro.end #153404"" (#159236) Reverts llvm/llvm-project#155339 because of CI fail
2025-09-17Reapply "[Coroutines] Add llvm.coro.is_in_ramp and drop return value of ↵Weibo He
llvm.coro.end #153404" (#155339) As mentioned in #151067, current design of llvm.coro.end mixes two functionalities: querying where we are and lowering to some code. This patch separate these functionalities into independent intrinsics by introducing a new intrinsic llvm.coro.is_in_ramp.
2025-08-25Revert "[Coroutines] Add llvm.coro.is_in_ramp and drop return value of ↵Chuanqi Xu
llvm.coro.end (#153404)" This reverts commit 19a4f520952c2b87de43e7176f34be9906384a33. See test failure in https://github.com/llvm/llvm-project/pull/153404
2025-08-25[Coroutines] Add llvm.coro.is_in_ramp and drop return value of llvm.coro.end ↵Weibo He
(#153404) As mentioned in #151067, current design of `llvm.coro.end` mixes two functionalities: querying where we are and lowering to some code. This patch separate these functionalities into independent intrinsics by introducing a new intrinsic `llvm.coro.is_in_ramp`.
2021-11-04[Coroutines] [Frontend] Lookup in std namespace firstChuanqi Xu
Now in libcxx and clang, all the coroutine components are defined in std::experimental namespace. And now the coroutine TS is merged into C++20. So in the working draft like N4892, we could find the coroutine components is defined in std namespace instead of std::experimental namespace. And the coroutine support in clang seems to be relatively stable. So I think it may be suitable to move the coroutine component into the experiment namespace now. This patch would make clang lookup coroutine_traits in std namespace first. For the compatibility consideration, clang would lookup in std::experimental namespace if it can't find definitions in std namespace. So the existing codes wouldn't be break after update compiler. And in case the compiler found std::coroutine_traits and std::experimental::coroutine_traits at the same time, it would emit an error for it. The support for looking up std::experimental::coroutine_traits would be removed in Clang16. Reviewed By: lxfind, Quuxplusone Differential Revision: https://reviews.llvm.org/D108696
2021-09-03Revert "[Coroutines] [Clang] Look up coroutine component in std namespace first"Louis Dionne
This reverts commit 2fbd254aa46b, which broke the libc++ CI. I'm reverting to get things stable again until we've figured out a way forward. Differential Revision: https://reviews.llvm.org/D108696
2021-09-03[Coroutines] [Clang] Look up coroutine component in std namespace firstChuanqi Xu
Summary: Now in libcxx and clang, all the coroutine components are defined in std::experimental namespace. And now the coroutine TS is merged into C++20. So in the working draft like N4892, we could find the coroutine components is defined in std namespace instead of std::experimental namespace. And the coroutine support in clang seems to be relatively stable. So I think it may be suitable to move the coroutine component into the experiment namespace now. But move the coroutine component into the std namespace may be an break change. So I planned to split this change into two patch. One in clang and other in libcxx. This patch would make clang lookup coroutine_traits in std namespace first. For the compatibility consideration, clang would lookup in std::experimental namespace if it can't find definitions in std namespace and emit a warning in this case. So the existing codes wouldn't be break after update compiler. Test Plan: check-clang, check-libcxx Reviewed By: lxfind Differential Revision: https://reviews.llvm.org/D108696
2020-02-03Revert "[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interposition"Fangrui Song
This reverts commit 789a46f2d742e11edaade28cb59a0f4d2a1d770e. Accidentally committed.
2020-02-03[CodeGenModule] Assume dso_local for -fpic -fno-semantic-interpositionFangrui Song
Summary: Clang -fpic defaults to -fno-semantic-interposition (GCC -fpic defaults to -fsemantic-interposition). Users need to specify -fsemantic-interposition to get semantic interposition behavior. Semantic interposition is currently a best-effort feature. There may still be some cases where it is not handled well. Reviewers: peter.smith, rnk, serge-sans-paille, sfertile, jfb, jdoerfert Subscribers: dschuff, jyknight, dylanmckay, nemanjai, jvesely, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, arphaman, PkmX, jocewei, jsji, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73865
2017-05-24[coroutines] Make generic lambda coroutines workGor Nishanov
Summary: 1. Coroutine cannot be constexpr (added a check in SemaLambda.cpp not to mark coroutine as constexpr) 2. TransformCoroutineBodyStmt should transform ResultDecl and ReturnStmt Reviewers: rsmith, GorNishanov Reviewed By: GorNishanov Subscribers: EricWF, cfe-commits Differential Revision: https://reviews.llvm.org/D33498 llvm-svn: 303764