[PATCH] D63381: Allow copy/move assignment operator to be coroutine as per N4775

2019-06-18 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM! Thank you for the fix. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D63381/new/ https://reviews.llvm.org/D63381 ___ cfe-

[PATCH] D62550: [coroutines][PR41909] Don't build dependent coroutine statements for generic lambda

2019-05-30 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM! Thank you for the fix Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62550/new/ https://reviews.llvm.org/D62550 _

[PATCH] D59076: [coroutines][PR40978] Emit error for co_yield within catch block

2019-03-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D59076/new/ https://reviews.llvm.org/D59076 ___ cfe-

[PATCH] D59076: [coroutines][PR40978] Emit error for co_yield within catch block

2019-03-07 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov requested changes to this revision. GorNishanov added inline comments. This revision now requires changes to proceed. Comment at: lib/Sema/SemaCoroutine.cpp:675 + // Second emphasis of [expr.await]p2: must be outside of an exception handler. + if (S.getCurScope()->

[PATCH] D59076: [coroutines][PR40978] Emit error for co_yield within catch block

2019-03-07 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: test/SemaCXX/coroutines.cpp:299-311 // FIXME: The spec says this is ill-formed. void operator=(CtorDtor&) { co_yield 0; // expected-error {{'co_yield' cannot be used in a copy assignment operator}} } void operator=(

[PATCH] D54075: [coroutines] Fix fallthrough warning on try/catch

2018-11-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM! Repository: rC Clang https://reviews.llvm.org/D54075 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm

[PATCH] D51741: [coro]Pass rvalue reference for named local variable to return_value

2018-10-01 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. LGTM! Thank you for doing this. Repository: rC Clang https://reviews.llvm.org/D51741 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/li

[PATCH] D46140: [coroutines] std::task type (WIP)

2018-08-29 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. Herald added a subscriber: jfb. LGTM With couple of suggestions. 1. Remove swap. It is not part of the proposal at the moment. 2. If you feel like, add a lazy alias to task, that way

[PATCH] D48863: [Sema] Explain coroutine_traits template in diag

2018-07-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: include/clang/Basic/DiagnosticSemaKinds.td:9053 "a coroutine">; +def note_coroutine_types_for_traits_here : Note< + "the coroutine traits class template is being instantiated using the return " I am wondering wha

[PATCH] D48519: [Sema] isValidCoroutineContext FIXME and citations

2018-06-23 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a subscriber: rsmith. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Comment at: lib/Sema/SemaCoroutine.cpp:260 else if (MD && MD->isMoveAssignmentOperator()) return DiagInvalid(Di

[PATCH] D47673: [Coroutines] Less IR for noexcept await_resume

2018-06-23 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM with some suggestions. Comment at: lib/CodeGen/CGCoroutine.cpp:224 + bool ResumeCanThrow = true; + if (const auto *MCE = dyn_cast(S.getResumeExpr())) +if

[PATCH] D47454: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604)

2018-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL79: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604) (authored by GorNishanov, committed by ). Herald added a subscriber: llvm-commits. Changed prior to commit: https://rev

[PATCH] D47454: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604)

2018-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. GorNishanov added reviewers: modocache, rsmith, lewissbaker. Herald added a subscriber: EricWF. Complete the implementation of p0914r1. Implicit object parameter should be passed to a promise constructor. Fixes: https://bugs.llvm.org/show_bug.cgi?id=37604 http

[PATCH] D45860: [Coroutines] Catch exceptions in await_resume

2018-05-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Repository: rC Clang https://reviews.llvm.org/D45860 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.

[PATCH] D45860: [Coroutines] Catch exceptions in await_resume

2018-05-02 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. Looks good. Make sure to run the tests in release and debug mode. On my box, these three test failed in release mode. Clang :: CodeGenCoroutines/coro-await-resume-eh.cpp Clang :: CodeGenCoroutines/coro-promise-dtor.cpp Clang :: CodeGenCoroutines/coro-unhandled-e

[PATCH] D45860: [Coroutines] Catch exceptions in await_resume

2018-04-25 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. Thank you for doing this. It looks very elegant, but, it is a little bit wrong. It creates two different initial_suspend objects. Run this example: https://wandbox.org/permlink/Q1Zd2NUlolmw9YmX You will observe that in trunk we are getting the output: 0x216808c:

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-13 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov closed this revision. GorNishanov added a comment. Committed as: https://reviews.llvm.org/rCXX329237 and a flurry of cleanup fixes: https://reviews.llvm.org/rCXX329239 https://reviews.llvm.org/rCXX329240 https://reviews.llvm.org/rCXX329245 https://reviews.llvm.org/D45121 __

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 141010. GorNishanov added a comment. - s/_LIBCPP_ALWAYS_INLINE/_LIBCPP_INLINE_VISIBILITY throughout - Added _LIBCPP_INLINE_VISIBILITY to noop_coroutine constructor @EricWF , good to go? https://reviews.llvm.org/D45121 Files: include/experimental/co

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov marked an inline comment as done. GorNishanov added inline comments. Comment at: include/experimental/coroutine:294 + +inline _LIBCPP_ALWAYS_INLINE +noop_coroutine_handle noop_coroutine() _NOEXCEPT { EricWF wrote: > GorNishanov wrote: > > lewissbaker

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov marked 11 inline comments as done. GorNishanov added inline comments. Comment at: include/experimental/coroutine:275 +return *reinterpret_cast<_Promise*>( +__builtin_coro_promise(this->__handle_, __alignof(_Promise), false)); +} --

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 140983. GorNishanov marked 2 inline comments as done. GorNishanov added a comment. - static_cast instead of reintrepret_cast in promise() - 2 spaces indent in added code (the rest of the file stayed as is) - added static_assert to check for done-ness and c

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov marked 2 inline comments as done. GorNishanov added inline comments. Comment at: include/experimental/coroutine:294 + +inline _LIBCPP_ALWAYS_INLINE +noop_coroutine_handle noop_coroutine() _NOEXCEPT { lewissbaker wrote: > EricWF wrote: > > This should

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 140903. GorNishanov added a comment. incorporated review feedback https://reviews.llvm.org/D45121 Files: include/experimental/coroutine test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.noop/noop_coroutine.

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. In https://reviews.llvm.org/D45121#1056408, @lewissbaker wrote: > The `coroutine_handle` type does not have a > `from_address()` or a `from_promise()` static functions in the same way that > the `coroutine_handle` implementation does. > Is this intentional or an ov

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-04-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. @EricWF , gentle ping. Super tini-tiny change. Last piece missing to be post-Jax 2018 compilant https://reviews.llvm.org/D45121 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailm

[PATCH] D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop

2018-04-02 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov closed this revision. GorNishanov added a comment. Committed: https://reviews.llvm.org/rC328993 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328993 91177308-0d34-0410-b5e6-96231b3b80d8 https://reviews.llvm.org/D45120 ___ cf

[PATCH] D45121: [coroutines] Add noop_coroutine to

2018-03-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. GorNishanov added reviewers: EricWF, lewissbaker, modocache. GorNishanov added dependencies: D45114: [coroutines] Add support for llvm.coro.noop intrinsics, D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop. A recent addition to Coroutines TS (http

[PATCH] D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop

2018-03-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. GorNishanov added reviewers: EricWF, modocache, lewissbaker. A recent addition to Coroutines TS (https://wg21.link/p0913) adds a pre-defined coroutine noop_coroutine that does nothing. To implement this feature, we implemented an llvm.coro.noop intrinsic that re

[PATCH] D44552: [Coroutines] Find custom allocators in class scope

2018-03-30 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM with some stylistic suggestions Comment at: lib/Sema/SemaExprCXX.cpp:2351 +return true; + else +LookupQualifiedName(R, Context.getTranslat

[PATCH] D37115: [coroutines] Do not attempt to typo-correct when coroutine is looking for required members

2018-03-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov closed this revision. GorNishanov added a comment. Fixed: git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328663 91177308-0d34-0410-b5e6-96231b3b80d8 https://reviews.llvm.org/D37115 ___ cfe-commits mailing list cfe-commits@lists

[PATCH] D43927: [Coroutines] Schedule coro-split before asan

2018-03-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM! Repository: rC Clang https://reviews.llvm.org/D43927 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm

[PATCH] D42606: [Coroutines] Use allocator overload when available

2018-02-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Repository: rC Clang https://reviews.llvm.org/D42606 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.

[PATCH] D42606: [Coroutines] Use allocator overload when available

2018-02-13 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:1062 + // an argument list." + for (auto *PD : FD.parameters()) { +if (PD->getType()->isDependentType()) GorNishanov wrote: > This does not implement TS specified behavior for non sta

[PATCH] D42606: [Coroutines] Use allocator overload when available

2018-02-13 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:1062 + // an argument list." + for (auto *PD : FD.parameters()) { +if (PD->getType()->isDependentType()) This does not implement TS specified behavior for non static member functions:

[PATCH] D42605: [Sema] Toggle diags when finding allocators (NFCI)

2018-02-12 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Repository: rC Clang https://reviews.llvm.org/D42605 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.

[PATCH] D42606: [Coroutines] Use allocator overload when available

2018-02-01 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/CodeGen/CGCoroutine.cpp:526 EmitBlock(AllocBB); - auto *AllocateCall = EmitScalarExpr(S.getAllocate()); + // Emit the call to the coroutine frame allocation function. + auto *AllocateCall = cast(EmitScalarExpr(S.getAllocate

[PATCH] D42606: [Coroutines] Use allocator overload when available

2018-02-01 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov requested changes to this revision. GorNishanov added inline comments. This revision now requires changes to proceed. Comment at: lib/CodeGen/CGCoroutine.cpp:526 EmitBlock(AllocBB); - auto *AllocateCall = EmitScalarExpr(S.getAllocate()); + // Emit the call to the

[PATCH] D42343: [coroutines] Fix application of NRVO to Coroutine "Gro" or return object.

2018-01-29 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D42343 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D41820: [coroutines] Pass coro func args to promise ctor

2018-01-23 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM! Repository: rC Clang https://reviews.llvm.org/D41820 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm

[PATCH] D41820: [coroutines] Pass coro func args to promise ctor

2018-01-12 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. In https://reviews.llvm.org/D41820#974116, @EricWF wrote: > Is this behavior specified somewhere? Or are we simply adding an extension to > Clang? If so I would really prefer to add my `co_promise` solution (but I > need to write a paper in favor of it first). Bef

[PATCH] D41820: [coroutines] Pass coro func args to promise ctor

2018-01-10 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov requested changes to this revision. GorNishanov added a comment. This revision now requires changes to proceed. Thank you for doing this change! Comment at: lib/Sema/SemaCoroutine.cpp:475 +// Create a static_cast\(expr). +static Expr *castForMoving(Sema &S, Expr *

[PATCH] D39768: [coroutines] Promote cleanup.dest.slot allocas to registers to avoid storing it in the coroutine frame

2017-11-11 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL317981: [coroutines] Promote cleanup.dest.slot allocas to registers to avoid storing it… (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D39768?vs=122004&id=122585#toc Repo

[PATCH] D39768: [coroutines] Promote cleanup.dest.slot allocas to registers to avoid storing it in the coroutine frame

2017-11-07 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Herald added a subscriber: EricWF. We don't want to store cleanup dest slot saved into the coroutine frame (as some of the cleanup code may access them after coroutine frame destroyed). This is an alternative to https://reviews.llvm.org/D37093 It is possible t

[PATCH] D37115: [coroutines] Do not attempt to typo-correct when coroutine is looking for required members

2017-10-18 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. @rsmith , here is a fix for the funny diagnostics you mentioned. https://reviews.llvm.org/D37115 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D35046: [coroutines] Include "this" type when looking up coroutine_traits

2017-10-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. @toby-allsopp: You mentioned that @EricWF already got this in. Can you close ("abandon") this patch if it is no longer needed. https://reviews.llvm.org/D35046 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http

[PATCH] D37115: [coroutines] Do not attempt to typo-correct when coroutine is looking for required members

2017-10-02 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. ping https://reviews.llvm.org/D37115 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D37454: [coroutines] Make sure auto return type of await_resume is properly handled

2017-09-05 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL312565: [coroutines] Make sure auto return type of await_resume is properly handled (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D37454?vs=113800&id=113894#toc Repositor

[PATCH] D37454: [coroutines] Make sure auto return type of await_resume is properly handled

2017-09-05 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov marked an inline comment as done. GorNishanov added inline comments. Comment at: test/SemaCXX/coroutines.cpp:169 +void check_auto_await_suspend() { + co_await auto_await_suspend{}; // OK +} javed.absar wrote: > maybe change the comment to something m

[PATCH] D37454: [coroutines] Make sure auto return type of await_resume is properly handled

2017-09-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov marked an inline comment as done. GorNishanov added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:451 if (RetType->isReferenceType() || (AdjRetType != S.Context.BoolTy && AdjRetType != S.Context.VoidTy)) { S.Diag(AwaitSuspend->getC

[PATCH] D37454: [coroutines] Make sure auto return type of await_resume is properly handled

2017-09-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 113800. GorNishanov retitled this revision from "[coroutines] desugar auto type of await_resume before checking whether it is void or bool" to "[coroutines] Make sure auto return type of await_resume is properly handled". GorNishanov added a comment. use

[PATCH] D37454: [coroutines] desugar auto type of await_resume before checking whether it is void or bool

2017-09-04 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. https://reviews.llvm.org/D37454 Files: lib/Sema/SemaCoroutine.cpp test/SemaCXX/coroutines.cpp Index: test/SemaCXX/coroutines.cpp === --- test/SemaCXX/coroutines.cpp +++ test/SemaCXX/coroutines

[PATCH] D37433: [cxx_status] Mark coroutine TS support as clang 5.0 and change class from svn to full for P0096R4

2017-09-03 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Shall we? https://reviews.llvm.org/D37433 Files: www/cxx_status.html Index: www/cxx_status.html === --- www/cxx_status.html +++ www/cxx_status.html @@ -872,7 +872,7 @@ -

[PATCH] D37131: [coroutines] Support coroutine-handle returning await-suspend (i.e symmetric control transfer)

2017-08-24 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL311762: [coroutines] Support coroutine-handle returning await-suspend (i.e symmetric… (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D37131?vs=112658&id=112659#toc Reposit

[PATCH] D37131: [coroutines] Support coroutine-handle returning await-suspend (i.e symmetric control transfer)

2017-08-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. If await_suspend returns a coroutine_handle, as in the example below: coroutine_handle<> await_suspend(coroutine_handle<> h) { coro.promise().waiter = h; return coro; } suspensionExpression processing will resume the coroutine pointed at by that ha

[PATCH] D37131: [coroutines] Support coroutine-handle returning await-suspend (i.e symmetric control transfer)

2017-08-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D37131 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D37115: [coroutines] Do not attempt to typo-correct when coroutine is looking for required members

2017-08-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. When SemaCoroutine looks for await_resume, it means it. No need for helpful: "Did you mean await_ready?" messages. Fixes PR33477 and a couple of FIXMEs in test/SemaCXX/coroutines.cpp https://reviews.llvm.org/D37115 Files: lib/Sema/SemaCoroutine.cpp test/

[PATCH] D36070: [coroutines] Evaluate the operand of void `co_return` expressions.

2017-07-30 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D36070 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D35383: [coroutines] Add serialization/deserialization of coroutines

2017-07-25 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. GorNishanov marked an inline comment as done. Closed by commit rL308996: [coroutines] Add serialization/deserialization of coroutines (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D35383?vs=

[PATCH] D35383: [coroutines] Add serialization/deserialization of coroutines

2017-07-25 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 108111. GorNishanov added a comment. Thank you for the review. Feedback implemented. Preparing to land https://reviews.llvm.org/D35383 Files: include/clang/AST/StmtCXX.h include/clang/Serialization/ASTBitCodes.h lib/AST/StmtCXX.cpp lib/Serializa

[PATCH] D35383: [coroutines] Add serialization/deserialization of coroutines

2017-07-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. @rsmith, ping. Would be good to get this in for clang 5.0 https://reviews.llvm.org/D35383 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[PATCH] D35383: [coroutines] Add serialization/deserialization of coroutines

2017-07-13 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Herald added a subscriber: EricWF. https://reviews.llvm.org/D35383 Files: include/clang/AST/StmtCXX.h include/clang/Serialization/ASTBitCodes.h lib/AST/StmtCXX.cpp lib/Serialization/ASTReaderStmt.cpp lib/Serialization/ASTWriterStmt.cpp test/PCH/corou

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: test/CodeGenCoroutines/coro-await.cpp:310 + int& x = co_await a; + // CHECK: await2.ready: + // CHECK-NEXT: %[[RES2:.+]] = call dereferenceable(4) i32* @_ZN24AwaitResumeReturnsLValue12await_resumeEv(%struct.AwaitResumeReturnsLVal

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added a comment. Added John McCall as he made great suggestions last time I touched emitSuspendExpression https://reviews.llvm.org/D34194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM with changes https://reviews.llvm.org/D34194 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov requested changes to this revision. GorNishanov added inline comments. This revision now requires changes to proceed. Comment at: lib/CodeGen/CGCoroutine.cpp:255 + +static QualType getCoroutineSuspendExprReturnType(const ASTContext &Ctx, + const CoroutineSuspendExpr

[PATCH] D34194: [coroutines] Allow co_await and co_yield expressions that return an lvalue to compile

2017-06-15 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Comment at: test/CodeGenCoroutines/coro-await.cpp:301 + +// Verifies that we don't chrash when returning an lvalue from a await_resume() +// expression. --

[PATCH] D34021: [coroutines] Fix co_await for range statement

2017-06-12 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D34021 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 101282. GorNishanov added a comment. test updated to use %[[copy_x]] instead of %x1 https://reviews.llvm.org/D33797 Files: lib/Sema/CoroutineStmtBuilder.h lib/Sema/SemaCoroutine.cpp lib/Sema/TreeTransform.h test/CodeGenCoroutines/coro-params.cpp

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-02 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: test/CodeGenCoroutines/coro-params.cpp:103 + // CHECK: call i8* @llvm.coro.begin + // CHECK-NEXT: call void @_ZN1AC1EOS_(%struct.A* %x1, %struct.A* dereferenceable(512) %x) + // CHECK-NEXT: call void @_ZNSt12experimental16corout

[PATCH] D33797: [coroutines] Fix rebuilding of dependent coroutine parameters

2017-06-01 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. We were not handling correctly rebuilding of parameter and were not creating copies for them. With this checking, we will be always rebuilding parameter moves in TreeTransform's TransformCoroutineBodyStmt. https://reviews.llvm.org/D33797 Files: lib/Sema/Co

[PATCH] D33733: CGCleanup: No need to do domination fixups for static allocas

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov closed this revision. GorNishanov added a comment. Tested checked in. Thank you for looking into this, Reid! r304380 = 1c0d15a4bf10876bb233e921907e114d52bee82e https://reviews.llvm.org/D33733 ___ cfe-commits mailing list cfe-commits@lis

[PATCH] D33750: CGCleanup: (NFC) add another test for r304335 - Don't try to spill static allocas

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304380: CGCleanup: (NFC) add another test for r304335 - Don't try to spill static… (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33750?vs=100951&id=100955#toc Repository

[PATCH] D33750: CGCleanup: (NFC) add a test that used to trigger broken IR

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Coroutine related test that used to trigger broken IR prior to r304335. https://reviews.llvm.org/D33750 Files: test/CodeGenCoroutines/coro-await-domination.cpp Index: test/CodeGenCoroutines/coro-await-domination.cpp

[PATCH] D33663: CGCleanup: Use correct insertion point for AllocaInst

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov abandoned this revision. GorNishanov added a comment. Abandoning... Reid fixed the problem with "r304335 - Don't try to spill static allocas when emitting expr cleanups with branches" Thank you Reid for looking into it! https://reviews.llvm.org/D33663 ___

[PATCH] D33733: CGCleanup: No need to do domination fixups for static allocas

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. This is a follow up for the https://reviews.llvm.org/rL297084 which made sure that dominance is preserved during expression cleanup emission. We ran into a case where dominance fixup code was inserting the store in the middle of allocas. %x = alloca i32, ali

[PATCH] D33663: CGCleanup: Use correct insertion point for AllocaInst

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/CodeGen/CGCleanup.cpp:458 InsertBefore = Invoke->getNormalDest()->getFirstInsertionPt(); +else if (isa(Inst)) + InsertBefore = std::next(AllocaInsertPt->getIterator()); rnk wrote: > This doesn't s

[PATCH] D33663: CGCleanup: Use correct insertion point for AllocaInst

2017-05-31 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 100889. GorNishanov added a comment. Make sure that we use AllocaInsertPt for only static allocas in the entry block https://reviews.llvm.org/D33663 Files: lib/CodeGen/CGCleanup.cpp test/CodeGenCoroutines/coro-await-domination.cpp Index: test/Code

[PATCH] D33660: [coroutines] Fix assertion during -Wuninitialized analysis

2017-05-30 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LBTM (Looks brilliant to me) https://reviews.llvm.org/D33660 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.

[PATCH] D33663: CGCleanup: Use correct insertion point for AllocaInst

2017-05-29 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. This is a follow up for the https://reviews.llvm.org/rL297084 which made sure that dominance is preserved during expression cleanup emission. We ran into a case where dominance fixup code was inserting the store in the middle of allocas. %x = alloca i32, ali

[PATCH] D33632: [coroutines] www/cxx_status.html: add non-breaking hyphen

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304092: [coroutines] www/cxx_status.html: add non-breaking hyphen (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33632?vs=100555&id=100556#toc Repository: rL LLVM http

[PATCH] D33632: [coroutines] www/cxx_status.html: add non-breaking hyphen

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov updated this revision to Diff 100555. GorNishanov added a comment. one more non-breaking hyphen to make it pretty in chrome. In edge it is perfect already, naturally https://reviews.llvm.org/D33632 Files: www/cxx_status.html Index: www/cxx_status.html ==

[PATCH] D33632: [coroutines] www/cxx_status.html: add non-breaking hyphen

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304091: [coroutines] www/cxx_status.html: add non-breaking hyphen (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33632?vs=100552&id=100553#toc Repository: rL LLVM http

[PATCH] D33632: [coroutines] cxx_status.hml: add non-breaking hyphen

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Herald added a subscriber: EricWF. https://reviews.llvm.org/D33632 Files: www/cxx_status.html Index: www/cxx_status.html === --- www/cxx_status.html +++ www/cxx_status.html @@ -832,7 +832,7 @@

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/Sema/SemaCoroutine.cpp:324 struct ReadySuspendResumeResult { + enum AwaitCallType { ACT_Ready, ACT_Suspend, ACT_Resume }; Expr *Results[3]; enum class? https://reviews.llvm.org/D33625 __

[PATCH] D33625: [coroutines] Diagnose invalid result types for `await_resume` and `await_suspend` and add missing conversions.

2017-05-28 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM Comment at: test/SemaCXX/coroutines.cpp:842 +struct bad_await_suspend_return { + bool await_ready(); + // expected-error@+1 {{the return type of 'await_suspe

[PATCH] D33624: [coroutines] Mark cxx_status.html of Coroutines TS as (SVN)

2017-05-27 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL304081: [coroutines] Mark cxx_status.html of Coroutines TS as (SVN) (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33624?vs=100538&id=100539#toc Repository: rL LLVM ht

[PATCH] D33624: [coroutines] Mark cxx_status.html of Coroutines TS as (SVN)

2017-05-27 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. Drumroll.. Approved! https://reviews.llvm.org/D33624 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/

[PATCH] D33624: [coroutines] Mark cxx_status.html of Coroutines TS as (SVN)

2017-05-27 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. It is time! https://reviews.llvm.org/D33624 Files: www/cxx_status.html Index: www/cxx_status.html === --- www/cxx_status.html +++ www/cxx_status.html @@ -831,9 +831,9 @@ [DR

[PATCH] D33536: [coroutines] Bump __cpp_coroutines version

2017-05-25 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D33536 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33534: [coroutines] Diagnose when promise types fail to declare either return_void or return_value.

2017-05-25 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D33534 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33532: [coroutines] Fix fallthrough diagnostics for coroutines

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D33532 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33532: [coroutines] Fix fallthrough diagnostics for coroutines

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov added inline comments. Comment at: lib/Sema/AnalysisBasedWarnings.cpp:378 const Stmt *S = CS.getStmt(); -if ((isa(S) && !IsCoroutine) || isa(S)) { +if (isa(S) || isa(S)) { HasLiveReturn = true; Is this check no longer needed becaus

[PATCH] D33507: [coroutines] Add support for coroutines with non-scalar parameters

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL303803: [coroutines] Add support for coroutines with non-scalar parameters (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33507?vs=100132&id=100152#toc Repository: rL L

[PATCH] D33507: [coroutines] Add support for coroutines with non-scalar parameters

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D33507 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33507: [coroutines] Add support for coroutines with non-scalar parameters

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Simple types like int are handled by LLVM Coroutines just fine. But for non-scalar parameters we need to create copies of those parameters in the coroutine frame and make all uses of those parameters to refer to parameter copies. https://reviews.llvm.org/D335

[PATCH] D33498: [coroutines] Make generic lambda coroutines work

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL303764: [coroutines] Make generic lambda coroutines work (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33498?vs=100097&id=100102#toc Repository: rL LLVM https://revie

[PATCH] D33498: [coroutines] Make generic lambda coroutines work

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov created this revision. Herald added a subscriber: EricWF. 1. Coroutine cannot be constexpr (added a check in SemaLambda.cpp not to mark coroutine as constexpr) 2. TransformCoroutineBodyStmt should transform ResultDecl and ReturnStmt https://reviews.llvm.org/D33498 Files: lib/Sema

[PATCH] D33498: [coroutines] Make generic lambda coroutines work

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
GorNishanov accepted this revision. GorNishanov added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D33498 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/list

[PATCH] D33481: [coroutines] Improved diagnostics when unhandled_exception is missing in the promise_type

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL303752: [coroutines] Improved diagnostics when unhandled_exception is missing in the… (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33481?vs=100037&id=100086#toc Reposit

[PATCH] D33479: [coroutines] [NFC] Add tests for return_void, unhandled_exception and promise dtor

2017-05-24 Thread Gor Nishanov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rL303748: [coroutines] [NFC] Add tests for return_void, unhandled_exception and promise… (authored by GorNishanov). Changed prior to commit: https://reviews.llvm.org/D33479?vs=100034&id=100084#toc Reposi

  1   2   3   >