Page MenuHomePhabricator

GorNishanov (Gor Nishanov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 8 2016, 8:07 PM (162 w, 2 d)

Recent Activity

Jun 18 2019

GorNishanov committed rG3fcad775c0fe: [coroutines] Add missing pass dependency. (authored by GorNishanov).
[coroutines] Add missing pass dependency.
Jun 18 2019, 12:50 PM
GorNishanov committed rL363727: [coroutines] Add missing pass dependency..
[coroutines] Add missing pass dependency.
Jun 18 2019, 12:46 PM
GorNishanov closed D63144: [coroutines] Add missing pass dependency..
Jun 18 2019, 12:46 PM · Restricted Project
GorNishanov accepted D63381: Allow copy/move assignment operator to be coroutine as per N4775.

LGTM! Thank you for the fix.

Jun 18 2019, 11:33 AM · Restricted Project

Jun 17 2019

GorNishanov accepted D63144: [coroutines] Add missing pass dependency..

LGTM! Thank you for fixing it.

Jun 17 2019, 5:46 PM · Restricted Project
GorNishanov added inline comments to D63388: WIP: experimenting with EH optimizations.
Jun 17 2019, 1:41 PM
GorNishanov updated the summary of D63388: WIP: experimenting with EH optimizations.
Jun 17 2019, 1:35 PM
GorNishanov added a comment to D63388: WIP: experimenting with EH optimizations.

Thanks a lot for working on this. There's a lot of room to improve the performance of exceptions that nobody has done for C++ yet. I've added some reviewers that I'm aware are familiar with the area or that I've talked with about this before.

Jun 17 2019, 1:35 PM
GorNishanov added a comment to D63388: WIP: experimenting with EH optimizations.
In D63388#1546335, @jfb wrote:
https://wg21.link/p1676

404

Jun 17 2019, 12:36 PM
GorNishanov added a comment to D63388: WIP: experimenting with EH optimizations.
In D63388#1546336, @jfb wrote:

Tests?

Jun 17 2019, 12:33 PM

Jun 16 2019

GorNishanov created D63388: WIP: experimenting with EH optimizations.
Jun 16 2019, 12:05 PM

May 30 2019

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

LGTM! Thank you for the fix

May 30 2019, 11:03 AM · Restricted Project, Restricted Project

May 13 2019

GorNishanov committed rGd64455cd431b: [coroutines] Fix spills of static array allocas (authored by GorNishanov).
[coroutines] Fix spills of static array allocas
May 13 2019, 4:56 PM
GorNishanov committed rL360636: [coroutines] Fix spills of static array allocas.
[coroutines] Fix spills of static array allocas
May 13 2019, 4:56 PM
GorNishanov closed D61372: [coroutines] Fix spills of static array allocas.
May 13 2019, 4:56 PM · Restricted Project

May 3 2019

GorNishanov accepted D61372: [coroutines] Fix spills of static array allocas.

LGTM! Thank you for doing the fix.
What is the original source that synthesized allocas with count?

May 3 2019, 10:16 AM · Restricted Project

Mar 15 2019

GorNishanov accepted D59076: [coroutines][PR40978] Emit error for co_yield within catch block.

LGTM

Mar 15 2019, 9:58 AM · Restricted Project

Mar 7 2019

GorNishanov accepted D59068: [coroutines][PR40979] Ignore unreachable uses across suspend points.

LGTM with a tiny suggestion

Mar 7 2019, 1:13 PM · Restricted Project
GorNishanov requested changes to D59076: [coroutines][PR40978] Emit error for co_yield within catch block.
Mar 7 2019, 1:11 PM · Restricted Project
GorNishanov added inline comments to D59076: [coroutines][PR40978] Emit error for co_yield within catch block.
Mar 7 2019, 1:05 PM · Restricted Project

Jan 9 2019

GorNishanov requested changes to D55966: Ensure coro split pass only spills variables dominated by CoroBegin.
Jan 9 2019, 4:34 PM

Dec 26 2018

GorNishanov added a comment to D55966: Ensure coro split pass only spills variables dominated by CoroBegin.

Creating copies for a scalar that is used in operator new and in the body of the function is a sound strategy.
Notice that if we replace int x parameter to Int x with the following int like class:

Dec 26 2018, 2:07 PM

Dec 11 2018

GorNishanov committed rL348897: [coroutines] Improve suspend point simplification.
[coroutines] Improve suspend point simplification
Dec 11 2018, 1:26 PM
GorNishanov closed D55160: [coroutines] Improve suspend point simplification.
Dec 11 2018, 1:26 PM
GorNishanov updated the diff for D55160: [coroutines] Improve suspend point simplification.

small test tweak. Preparing to land

Dec 11 2018, 1:20 PM

Dec 10 2018

GorNishanov added inline comments to D55160: [coroutines] Improve suspend point simplification.
Dec 10 2018, 9:05 PM
GorNishanov updated the diff for D55160: [coroutines] Improve suspend point simplification.

Implemented review feedback (and fix the test that missed the bug discovered by CR)

Dec 10 2018, 9:05 PM
GorNishanov added a comment to D55160: [coroutines] Improve suspend point simplification.

gentle ping

Dec 10 2018, 1:38 PM

Dec 5 2018

GorNishanov updated the summary of D55186: [eh-simplify] SelfReview.
Dec 5 2018, 2:27 PM

Dec 3 2018

GorNishanov committed rL348209: NFC: Add .vscode to .gitignore.
NFC: Add .vscode to .gitignore
Dec 3 2018, 2:54 PM
GorNishanov committed rC348209: NFC: Add .vscode to .gitignore.
NFC: Add .vscode to .gitignore
Dec 3 2018, 2:54 PM

Dec 2 2018

GorNishanov created D55186: [eh-simplify] SelfReview.
Dec 2 2018, 10:56 PM

Dec 1 2018

GorNishanov created D55164: [coroutines] defined eh clang part.
Dec 1 2018, 11:24 AM

Nov 30 2018

GorNishanov created D55160: [coroutines] Improve suspend point simplification.
Nov 30 2018, 10:19 PM

Nov 13 2018

GorNishanov created D54501: [coroutines] Experimenting with compile-time size check.
Nov 13 2018, 3:49 PM
GorNishanov created D54500: [coroutines] Experimenting with compile-time size check.
Nov 13 2018, 3:45 PM

Nov 3 2018

GorNishanov accepted D54075: [coroutines] Fix fallthrough warning on try/catch.

LGTM!

Nov 3 2018, 3:03 PM

Oct 1 2018

GorNishanov accepted D51741: [coro]Pass rvalue reference for named local variable to return_value.

LGTM! Thank you for doing this.

Oct 1 2018, 4:20 PM

Aug 29 2018

GorNishanov accepted D46140: [coroutines] Add std::experimental::task<T> type.

With a few suggestions.

Aug 29 2018, 1:02 PM

Jul 3 2018

GorNishanov added inline comments to D48863: [Sema] Explain coroutine_traits template in diag.
Jul 3 2018, 3:42 PM

Jun 23 2018

GorNishanov accepted D48519: [Sema] isValidCoroutineContext FIXME and citations.

LGTM

Jun 23 2018, 10:00 AM
GorNishanov accepted D47673: [Coroutines] Less IR for noexcept await_resume.

LGTM with some suggestions.

Jun 23 2018, 9:53 AM

May 28 2018

GorNishanov committed rC333379: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604).
[coroutines] Pass implicit object parameter to promise ctor (fix BUG37604)
May 28 2018, 11:13 AM
GorNishanov committed rL333379: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604).
[coroutines] Pass implicit object parameter to promise ctor (fix BUG37604)
May 28 2018, 11:13 AM
GorNishanov closed D47454: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604).
May 28 2018, 11:12 AM
GorNishanov created D47454: [coroutines] Pass implicit object parameter to promise ctor (fix BUG37604).
May 28 2018, 10:47 AM

May 10 2018

GorNishanov accepted D43242: [Coroutines] PR34897: Fix incorrect elisions.

LGTM!

May 10 2018, 6:46 PM

May 3 2018

GorNishanov accepted D45860: [Coroutines] Catch exceptions in await_resume.

LGTM

May 3 2018, 5:09 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 3 2018, 10:32 AM

May 2 2018

GorNishanov added a comment to D45860: [Coroutines] Catch exceptions in await_resume.

Looks good. Make sure to run the tests in release and debug mode.
On my box, these three test failed in release mode.

May 2 2018, 4:02 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 2 2018, 2:35 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 2 2018, 2:20 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 2 2018, 2:18 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 2 2018, 8:42 AM

May 1 2018

GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
May 1 2018, 9:25 PM

Apr 26 2018

GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
Apr 26 2018, 9:19 PM
GorNishanov added inline comments to D46140: [coroutines] Add std::experimental::task<T> type.
Apr 26 2018, 1:20 PM
GorNishanov added a comment to D46140: [coroutines] Add std::experimental::task<T> type.

Thank you for doing this, Lewis.

Apr 26 2018, 11:40 AM
GorNishanov created D46140: [coroutines] Add std::experimental::task<T> type.
Apr 26 2018, 11:30 AM

Apr 25 2018

GorNishanov requested changes to D45860: [Coroutines] Catch exceptions in await_resume.
Apr 25 2018, 2:12 PM
GorNishanov added a comment to D45860: [Coroutines] Catch exceptions in await_resume.

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:

Apr 25 2018, 12:11 PM

Apr 13 2018

GorNishanov closed D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.

Committed as:

Apr 13 2018, 5:18 PM

Apr 4 2018

GorNishanov committed rL329245: [coroutines] libcxx, noop_coroutine, make bots even more happy.
[coroutines] libcxx, noop_coroutine, make bots even more happy
Apr 4 2018, 5:21 PM
GorNishanov committed rCXX329245: [coroutines] libcxx, noop_coroutine, make bots even more happy.
[coroutines] libcxx, noop_coroutine, make bots even more happy
Apr 4 2018, 5:21 PM
GorNishanov committed rL329240: [coroutines] libcxx noop_coroutine. Make bots happier.
[coroutines] libcxx noop_coroutine. Make bots happier
Apr 4 2018, 4:47 PM
GorNishanov committed rCXX329240: [coroutines] libcxx noop_coroutine. Make bots happier.
[coroutines] libcxx noop_coroutine. Make bots happier
Apr 4 2018, 4:47 PM
GorNishanov committed rCXX329239: [coroutines] Allow compilation under c++03.
[coroutines] Allow compilation under c++03
Apr 4 2018, 3:54 PM
GorNishanov committed rL329239: [coroutines] Allow compilation under c++03.
[coroutines] Allow compilation under c++03
Apr 4 2018, 3:54 PM
GorNishanov committed rCXX329237: [coroutines] Add noop_coroutine to <experimental/coroutine>.
[coroutines] Add noop_coroutine to <experimental/coroutine>
Apr 4 2018, 3:21 PM
GorNishanov committed rL329237: [coroutines] Add noop_coroutine to <experimental/coroutine>.
[coroutines] Add noop_coroutine to <experimental/coroutine>
Apr 4 2018, 3:21 PM
GorNishanov updated the diff for D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
  • s/_LIBCPP_ALWAYS_INLINE/_LIBCPP_INLINE_VISIBILITY throughout <experimental/coroutine>
  • Added _LIBCPP_INLINE_VISIBILITY to noop_coroutine constructor
Apr 4 2018, 11:40 AM
GorNishanov added inline comments to D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Apr 4 2018, 11:14 AM
GorNishanov added inline comments to D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Apr 4 2018, 10:06 AM
GorNishanov updated the diff for D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
  • 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 capacity
  • constexpr => _LIBCPP_CONSTEXPR
  • noexcept => _NOEXCEPT
Apr 4 2018, 10:02 AM
GorNishanov added inline comments to D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Apr 4 2018, 7:01 AM

Apr 3 2018

GorNishanov abandoned D37050: [coroutines] Self-review: two combined fixes.

This got fixed with:

Apr 3 2018, 10:34 PM
GorNishanov updated the diff for D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.

incorporated review feedback

Apr 3 2018, 10:25 PM
GorNishanov added a comment to D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.

The coroutine_handle<noop_coroutine_promise> type does not have a from_address() or a from_promise() static functions in the same way that the coroutine_handle<P> implementation does.
Is this intentional or an oversight in the TS wording?

They don't seem hugely useful, so I'm not that worried.
If you know that you have a coroutine_handle<noop_coroutine_promise> then you can just use noop_coroutine() to get the handle instead.

Apr 3 2018, 10:08 PM
GorNishanov committed rL329112: [coroutines] Respect alloca alignment requirements when building coroutine frame.
[coroutines] Respect alloca alignment requirements when building coroutine frame
Apr 3 2018, 1:57 PM
GorNishanov closed D45221: [coroutines] Respect alloca alignment requirements when building coroutine frame.
Apr 3 2018, 1:57 PM
GorNishanov added a reviewer for D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>: CaseyCarter.
Apr 3 2018, 1:15 PM
GorNishanov created D45221: [coroutines] Respect alloca alignment requirements when building coroutine frame.
Apr 3 2018, 11:45 AM
GorNishanov closed D40273: [coroutine] Respect alloca alignment requirements..

Put out an updated version of this patch in

Apr 3 2018, 11:45 AM
GorNishanov added a comment to D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.

@EricWF , gentle ping. Super tini-tiny change. Last piece missing to be post-Jax 2018 compilant

Apr 3 2018, 10:32 AM

Apr 2 2018

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328993 91177308-0d34-0410-b5e6-96231b3b80d8

Apr 2 2018, 10:40 AM
GorNishanov committed rC328993: [coroutines] Add __builtin_coro_noop => llvm.coro.noop.
[coroutines] Add __builtin_coro_noop => llvm.coro.noop
Apr 2 2018, 10:39 AM
GorNishanov committed rL328993: [coroutines] Add __builtin_coro_noop => llvm.coro.noop.
[coroutines] Add __builtin_coro_noop => llvm.coro.noop
Apr 2 2018, 10:39 AM
GorNishanov committed rL328986: [coroutines] Add support for llvm.coro.noop intrinsics.
[coroutines] Add support for llvm.coro.noop intrinsics
Apr 2 2018, 9:58 AM
GorNishanov closed D45114: [coroutines] Add support for llvm.coro.noop intrinsics.
Apr 2 2018, 9:58 AM

Mar 31 2018

GorNishanov added a child revision for D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop: D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Mar 31 2018, 7:21 AM
GorNishanov added parent revisions for D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>: D45114: [coroutines] Add support for llvm.coro.noop intrinsics, D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop.
Mar 31 2018, 7:21 AM
GorNishanov added a child revision for D45114: [coroutines] Add support for llvm.coro.noop intrinsics: D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Mar 31 2018, 7:21 AM
GorNishanov created D45121: [coroutines] Add noop_coroutine to <experimental/coroutine>.
Mar 31 2018, 7:21 AM
GorNishanov added a child revision for D45114: [coroutines] Add support for llvm.coro.noop intrinsics: D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop.
Mar 31 2018, 7:16 AM
GorNishanov added a parent revision for D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop: D45114: [coroutines] Add support for llvm.coro.noop intrinsics.
Mar 31 2018, 7:16 AM
GorNishanov created D45120: [coroutines] Add __builtin_coro_noop => llvm.coro.noop.
Mar 31 2018, 7:16 AM
GorNishanov updated the diff for D45114: [coroutines] Add support for llvm.coro.noop intrinsics.

added a test that verifies lowering of llvm.coro.noop

Mar 31 2018, 7:08 AM

Mar 30 2018

GorNishanov created D45114: [coroutines] Add support for llvm.coro.noop intrinsics.
Mar 30 2018, 4:04 PM
GorNishanov requested changes to D43242: [Coroutines] PR34897: Fix incorrect elisions.

I believe that this check is too aggressive. It prevents http://godbolt.org/g/26viuZ from optimizing as well.
I think a distinction should be made for exceptional paths and happy path.
We need to make sure that we call coro.destroy on all happy paths.

Mar 30 2018, 11:11 AM
GorNishanov accepted D44552: [Coroutines] Find custom allocators in class scope.

LGTM with some stylistic suggestions

Mar 30 2018, 9:23 AM