Page MenuHomePhabricator

GorNishanov (Gor Nishanov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 8 2016, 8:07 PM (354 w, 5 d)

Recent Activity

Sep 22 2020

GorNishanov accepted D88059: [Coroutine] Split PHI Nodes in `cleanuppad` blocks in a way that obeys EH pad rules.
Sep 22 2020, 4:18 PM · Restricted Project
GorNishanov accepted D88059: [Coroutine] Split PHI Nodes in `cleanuppad` blocks in a way that obeys EH pad rules.

LGTM.

Sep 22 2020, 1:35 PM · Restricted Project

Aug 16 2019

GorNishanov abandoned D55966: Ensure coro split pass only spills variables dominated by CoroBegin.
Aug 16 2019, 10:17 AM · Restricted Project
GorNishanov commandeered D55966: Ensure coro split pass only spills variables dominated by CoroBegin.

This is no longer needed. https://reviews.llvm.org/D66230 fixes the problem.

Aug 16 2019, 10:17 AM · Restricted Project
GorNishanov added a comment to D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..

aspects of frame layout being exposed in the ABI is a property of the switch lowering, not coroutines in general.

Aug 16 2019, 10:04 AM · Restricted Project

Aug 15 2019

GorNishanov added a comment to D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..

Is there a case you're imagining where the adjustment would have side-effects? Because I can see a reason to have an intrinsic that returns a frame pointer, but I don't see why that intrinsic would have any of the restrictions of @llvm.coro.begin.

Aug 15 2019, 8:33 PM · Restricted Project
GorNishanov added a comment to D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..

Seems reasonable to me. If we're no longer imposing any *restrictions* for @llvm.coro.begin, is it serving any real purpose? Is it just a way of getting a handle to the coroutine frame?

Aug 15 2019, 10:39 AM · Restricted Project

Aug 14 2019

GorNishanov committed rGefe009340448: [coroutine] Fixes "cannot move instruction since its users are not dominated by… (authored by GorNishanov).
[coroutine] Fixes "cannot move instruction since its users are not dominated by…
Aug 14 2019, 5:52 PM
GorNishanov committed rL368949: [coroutine] Fixes "cannot move instruction since its users are not dominated by….
[coroutine] Fixes "cannot move instruction since its users are not dominated by…
Aug 14 2019, 5:51 PM
GorNishanov closed D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..
Aug 14 2019, 5:51 PM · Restricted Project
GorNishanov updated the diff for D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..

Merged with the latest CoroFrame changes from @rjmccall .

Aug 14 2019, 5:46 PM · Restricted Project
GorNishanov added a reviewer for D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem.: rjmccall.
Aug 14 2019, 5:46 PM · Restricted Project
GorNishanov updated the diff for D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..

Thank you very much for the reivew, Brian!
Nit addressed. Preparing to land.

Aug 14 2019, 4:19 PM · Restricted Project
GorNishanov updated the summary of D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..
Aug 14 2019, 10:29 AM · Restricted Project
GorNishanov created D66230: [coroutine] Fixes "cannot move instruction since its users are not dominated by CoroBegin" problem..
Aug 14 2019, 10:17 AM · Restricted Project

Aug 5 2019

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

Noted, I'll try to work on this issue in early August, at the latest. In the meantime feel free to claim that bug report and submit a patch. Unfortunately unless someone develops a patch and immediately requests it be merged into the LLVM 9.0.0 release branch, I don't think it'll be in 9.0.0.

Let me see if I can make the fix this week.

Aug 5 2019, 1:23 PM · Restricted Project

Jul 24 2019

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

Noted, I'll try to work on this issue in early August, at the latest. In the meantime feel free to claim that bug report and submit a patch. Unfortunately unless someone develops a patch and immediately requests it be merged into the LLVM 9.0.0 release branch, I don't think it'll be in 9.0.0.

Jul 24 2019, 10:58 AM · Restricted Project

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:
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 · Restricted Project

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 · Restricted Project

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 · Restricted Project

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