Page MenuHomePhabricator

mizvekov (Matheus Izvekov)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 25 2021, 3:57 PM (15 w, 6 d)

Recent Activity

Fri, May 14

mizvekov added a comment to D100733: [clang] NFC: change uses of `Expr->getValueKind` into `is?Value`.

What do we think about renaming isRValue() to isPRValue() and renaming VK_RValue to VK_PRValue, adding a "real" isRValue(), and then performing this cleanup? I think the current state of treating "rvalue" as sometimes meaning rvalue and sometimes meaning "prvalue" is unhelpful and confusing, and this change makes it worse because isRValue *could* be checking for an rvalue whereas a comparison against VK_RValue more clearly is only looking for one specific value category rather than two.

Fri, May 14, 5:27 PM · Restricted Project
mizvekov added a comment to D100733: [clang] NFC: change uses of `Expr->getValueKind` into `is?Value`.

Not sure how to feel about this, the value categories are already hard to grasp for most C++ programmers. To solve the implicit move concerns with a new value category seems like cracking a nut with a sledgehammer. But that's not directly related to this change, we can discuss this when the change is there.

Fri, May 14, 3:07 PM · Restricted Project
mizvekov added a comment to D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.

Again, I'm not sure if it helps to use getDecltypeForParenthesizedExpr where we don't actually have the decltype of a parenthesized expression.

It's probably not entirely coincidental, but things aren't defined this way.

Fri, May 14, 2:38 PM · Restricted Project

Wed, Apr 21

mizvekov updated the diff for D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.

.

Wed, Apr 21, 12:32 PM · Restricted Project

Tue, Apr 20

mizvekov updated the diff for D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.

Initial implementation, still WIP.

Tue, Apr 20, 4:24 PM · Restricted Project

Sun, Apr 18

mizvekov added a comment to D100733: [clang] NFC: change uses of `Expr->getValueKind` into `is?Value`.

The change seems to be correct, but I'm wondering if x.getValueKind() == VK_*Value doesn't have one advantage over x.is*Value(): it's obvious that this is exclusive with the other values. Especially with isRValue() it might not be so obvious, because Clang doesn't follow the C++11 terminology with this.

But it's admittedly shorter, so I'd be willing to approve this.

Sun, Apr 18, 4:29 PM · Restricted Project
mizvekov requested review of D100733: [clang] NFC: change uses of `Expr->getValueKind` into `is?Value`.
Sun, Apr 18, 1:41 PM · Restricted Project
mizvekov retitled D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr from [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr and getValueKind to [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.
Sun, Apr 18, 1:22 PM · Restricted Project
mizvekov updated the diff for D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.

Split 'getValueKind' cleanup into a separate patch.

Sun, Apr 18, 1:22 PM · Restricted Project

Sat, Apr 17

mizvekov added inline comments to D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.
Sat, Apr 17, 7:35 PM · Restricted Project
mizvekov updated the diff for D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.

.

Sat, Apr 17, 7:16 PM · Restricted Project
mizvekov updated the summary of D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.
Sat, Apr 17, 6:54 PM · Restricted Project
mizvekov requested review of D100713: [clang] NFC: refactor usage of getDecltypeForParenthesizedExpr.
Sat, Apr 17, 6:51 PM · Restricted Project

Apr 16 2021

mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

rebase

Apr 16 2021, 5:52 PM · Restricted Project

Apr 15 2021

mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • Added doc to disallowNRVO
  • Also detect implicit return type for blocks.
Apr 15 2021, 2:31 PM · Restricted Project

Apr 13 2021

mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 13 2021, 4:29 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • Changed the downgrade* function name to disallowNRVO, given second thought, I think it's appropriate name.
  • Change to one variable declaration per statement as per Arthur's review.
Apr 13 2021, 3:02 PM · Restricted Project
mizvekov added a comment to D99696: [clang] NRVO: Improvements and handling of more cases..

Actually, there is still something not quite right with this patch that I have to finish investigating.

Apr 13 2021, 2:50 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 13 2021, 2:27 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 13 2021, 2:20 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 13 2021, 1:35 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 13 2021, 1:33 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • Address rsmith review comments.
Apr 13 2021, 1:31 PM · Restricted Project

Apr 12 2021

mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 12 2021, 8:08 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 12 2021, 7:20 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

rebase

Apr 12 2021, 6:04 PM · Restricted Project

Apr 11 2021

mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 11 2021, 8:30 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • Removes code that tried to allow copy elision for functions with dependent 'auto' return types. The reason is explained in new comments. Will try to address these in future work.
  • Addresses aaronpuchert's review points.
Apr 11 2021, 8:27 PM · Restricted Project

Apr 10 2021

mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 10 2021, 8:02 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 10 2021, 12:03 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • Addresses aaronpuchert's review points.
Apr 10 2021, 11:59 AM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 10 2021, 9:31 AM · Restricted Project

Apr 9 2021

mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 9 2021, 7:47 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 9 2021, 7:43 PM · Restricted Project
mizvekov added inline comments to D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 9 2021, 7:41 PM · Restricted Project
mizvekov committed rG18192228602c: [clang] tests: cleanup, update and add some new ones (authored by mizvekov).
[clang] tests: cleanup, update and add some new ones
Apr 9 2021, 8:24 AM
mizvekov closed D99225: [clang] tests: cleanup, update and add some new ones.
Apr 9 2021, 8:24 AM · Restricted Project

Apr 6 2021

mizvekov updated the diff for D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.

.

Apr 6 2021, 6:10 PM · Restricted Project
mizvekov updated the diff for D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.

.

Apr 6 2021, 6:02 PM · Restricted Project
mizvekov retitled D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO from [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO WIP, not ready for review. to [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.
Apr 6 2021, 5:31 PM · Restricted Project
mizvekov requested review of D100000: [clang] WIP: Implement simpler alternative to two-phase lookup for NRVO.
Apr 6 2021, 5:27 PM · Restricted Project
mizvekov committed rGa1aada75f565: [docs] Fix doxygen comments wrongly attached to the llvm namespace (authored by nicolas17).
[docs] Fix doxygen comments wrongly attached to the llvm namespace
Apr 6 2021, 4:20 PM
mizvekov closed D96736: [docs] Fix doxygen comments wrongly attached to the llvm namespace.
Apr 6 2021, 4:20 PM · Restricted Project
mizvekov accepted D96736: [docs] Fix doxygen comments wrongly attached to the llvm namespace.
Apr 6 2021, 3:12 PM · Restricted Project
mizvekov added a reviewer for D96736: [docs] Fix doxygen comments wrongly attached to the llvm namespace: mizvekov.
Apr 6 2021, 3:04 PM · Restricted Project
mizvekov added a comment to D96736: [docs] Fix doxygen comments wrongly attached to the llvm namespace.

In general LGTM, once you address the couple of points I raised, and address the relevant linter issues.

Apr 6 2021, 11:58 AM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.
  • test/SemaCXX/coroutine-rvo: Make MoveOnly trivial, since the temporary is not created anymore and there is no special reason to test a non-trivial type here.
Apr 6 2021, 11:12 AM · Restricted Project
mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.
  • Finally addresses all of Arthur's review requests.
Apr 6 2021, 11:08 AM · Restricted Project
mizvekov added inline comments to D99225: [clang] tests: cleanup, update and add some new ones.
Apr 6 2021, 11:07 AM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.
Apr 6 2021, 9:10 AM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..
  • small Doxygen fix.
Apr 6 2021, 9:01 AM · Restricted Project

Apr 3 2021

mizvekov retitled D99696: [clang] NRVO: Improvements and handling of more cases. from [clang] WIP: NRVO: Improvements and handling of more cases. to [clang] NRVO: Improvements and handling of more cases..
Apr 3 2021, 8:34 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..

.

Apr 3 2021, 7:49 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..

Rebased.

Apr 3 2021, 7:09 PM · Restricted Project
mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.
  • Addresses most of Arthur's points.
  • Re-adds test coverage for conversion-function.cpp and temp.mem/p5.cpp with no C++ version specified.
  • Adds a couple more tests on nrvo-tracking for blocks returning references.
Apr 3 2021, 6:35 PM · Restricted Project
mizvekov added inline comments to D99225: [clang] tests: cleanup, update and add some new ones.
Apr 3 2021, 5:32 PM · Restricted Project

Apr 2 2021

mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.

Just rebased, removing trailing whitespace noise.

Apr 2 2021, 6:27 PM · Restricted Project
mizvekov committed rGbac74a50e99f: [clang] NFC: remove trailing white spaces from some tests (authored by mizvekov).
[clang] NFC: remove trailing white spaces from some tests
Apr 2 2021, 6:18 PM
mizvekov closed D99826: [clang] NFC: remove trailing white spaces from some tests.
Apr 2 2021, 6:18 PM · Restricted Project
mizvekov requested review of D99826: [clang] NFC: remove trailing white spaces from some tests.
Apr 2 2021, 6:14 PM · Restricted Project
mizvekov added a comment to D99225: [clang] tests: cleanup, update and add some new ones.

@Quuxplusone Thank you for the review. All your points are good ones and will be addressed in time!

Apr 2 2021, 5:42 PM · Restricted Project
mizvekov retitled D99225: [clang] tests: cleanup, update and add some new ones from [clang] cxx tests: cleanup, update and add some new ones to [clang] tests: cleanup, update and add some new ones.
Apr 2 2021, 4:56 PM · Restricted Project
mizvekov updated the summary of D99696: [clang] NRVO: Improvements and handling of more cases..
Apr 2 2021, 4:38 PM · Restricted Project
mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..

Fixes for auto&, decltype(auto).
Exclude candidates from functions with dependent / undeduced return types which are references.
Adjusts the CodeGen tests from D99225.

Apr 2 2021, 4:32 PM · Restricted Project
mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.

Includes some new NRVO tests which will be used in D99696.

Apr 2 2021, 4:22 PM · Restricted Project

Mar 31 2021

mizvekov updated the diff for D99696: [clang] NRVO: Improvements and handling of more cases..

fix clang-tidy warning.

Mar 31 2021, 6:44 PM · Restricted Project
mizvekov added a comment to D99696: [clang] NRVO: Improvements and handling of more cases..

Wow, nice catches. For posterity, here's the missed-optimization being addressed IIUC: https://godbolt.org/z/MEoKGs7cE

Mar 31 2021, 6:11 PM · Restricted Project
mizvekov requested review of D99696: [clang] NRVO: Improvements and handling of more cases..
Mar 31 2021, 5:42 PM · Restricted Project

Mar 30 2021

mizvekov added inline comments to D99005: [clang] Implement P2266 Simpler implicit move.
Mar 30 2021, 3:14 PM · Restricted Project
mizvekov committed rG3ad6dd5d8f0a: [clang] Use decltype((E)) for compound requirement type constraint (authored by mizvekov).
[clang] Use decltype((E)) for compound requirement type constraint
Mar 30 2021, 1:01 PM
mizvekov closed D98160: [clang] Use decltype((E)) for compound requirement type constraint.
Mar 30 2021, 1:00 PM · Restricted Project

Mar 29 2021

mizvekov updated the diff for D98160: [clang] Use decltype((E)) for compound requirement type constraint.

Changes per rsmith review:

Mar 29 2021, 5:11 PM · Restricted Project
mizvekov added inline comments to D99005: [clang] Implement P2266 Simpler implicit move.
Mar 29 2021, 3:57 PM · Restricted Project
mizvekov added inline comments to D98160: [clang] Use decltype((E)) for compound requirement type constraint.
Mar 29 2021, 2:21 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

Small update making some invariants more clear, with some simplifications.

Mar 29 2021, 10:32 AM · Restricted Project

Mar 28 2021

mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

some further simplifications

Mar 28 2021, 7:44 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

small fix

Mar 28 2021, 4:57 PM · Restricted Project
mizvekov updated subscribers of D99005: [clang] Implement P2266 Simpler implicit move.
Mar 28 2021, 4:41 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

So it turns out there was a pre-existing bug where ObjC++ blocks
with dependent return type were not getting copy elision.

Mar 28 2021, 4:19 PM · Restricted Project

Mar 27 2021

mizvekov retitled D99005: [clang] Implement P2266 Simpler implicit move from [clang] WIP: Implement P2266 to [clang] Implement P2266 Simpler implicit move.
Mar 27 2021, 9:06 PM · Restricted Project
mizvekov updated the summary of D99005: [clang] Implement P2266 Simpler implicit move.
Mar 27 2021, 9:06 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

Cleaned up implementation, not WIP anymore, ready for review.

Mar 27 2021, 8:58 PM · Restricted Project

Mar 24 2021

mizvekov added inline comments to D98160: [clang] Use decltype((E)) for compound requirement type constraint.
Mar 24 2021, 4:05 PM · Restricted Project
mizvekov updated the summary of D99005: [clang] Implement P2266 Simpler implicit move.
Mar 24 2021, 3:45 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

Rebased on top of D99225, running on a bunch of extra tests.

Mar 24 2021, 3:43 PM · Restricted Project

Mar 23 2021

mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.

Normalize test tag names on clang/test/SemaCXX/P1155.cpp

Mar 23 2021, 6:41 PM · Restricted Project
mizvekov added a comment to D99005: [clang] Implement P2266 Simpler implicit move.

Splitting off the test changes into: https://reviews.llvm.org/D99225

Mar 23 2021, 5:26 PM · Restricted Project
mizvekov updated the diff for D99225: [clang] tests: cleanup, update and add some new ones.

Changes per Arthur.

Mar 23 2021, 5:18 PM · Restricted Project
mizvekov added inline comments to D99225: [clang] tests: cleanup, update and add some new ones.
Mar 23 2021, 5:09 PM · Restricted Project
mizvekov added inline comments to D99225: [clang] tests: cleanup, update and add some new ones.
Mar 23 2021, 5:02 PM · Restricted Project
mizvekov added reviewers for D99225: [clang] tests: cleanup, update and add some new ones: aaronpuchert, Quuxplusone.
Mar 23 2021, 4:41 PM · Restricted Project
mizvekov requested review of D99225: [clang] tests: cleanup, update and add some new ones.
Mar 23 2021, 4:38 PM · Restricted Project
mizvekov added a comment to D98971: [C++20] [P1825] Fix bugs with implicit-move from variables of reference type.

Shrink the code by one line, by introducing another local named variable.
Still hoping for an "accept" here.

Mar 23 2021, 8:01 AM · Restricted Project

Mar 22 2021

mizvekov updated the summary of D99005: [clang] Implement P2266 Simpler implicit move.
Mar 22 2021, 10:28 AM · Restricted Project

Mar 21 2021

mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

small cleanup.

Mar 21 2021, 7:08 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

small cleanup.

Mar 21 2021, 7:05 PM · Restricted Project
mizvekov updated the diff for D99005: [clang] Implement P2266 Simpler implicit move.

Changed:

  • Implemented co_return as per Aaron's suggestion.
  • Imported coroutine tests from D68845.
  • Test tags shortened: cxxYY_cxxZZ means every version from YY to ZZ, instead of cxxAA_BB_CC_DD.
  • Existing test on decltype(auto) updated to also run on c++2b.
  • Change one of the test cases to just instantiate the relevant template, as per Arthur.
Mar 21 2021, 5:56 PM · Restricted Project
mizvekov added a comment to D99005: [clang] Implement P2266 Simpler implicit move.

With my previous comment I meant that it's better if you leave out the co_return bits for now because it's wrong anyway. We can't use PerformMoveOrCopyInitialization. It would just generate merge conflicts.

Mar 21 2021, 4:12 PM · Restricted Project
mizvekov added a comment to D99005: [clang] Implement P2266 Simpler implicit move.

Conspicuously missing: tests for decltype(auto) return types, tests for co_return.

Though the first comment warns you that this is a work in progress and I just didn't get around to doing it yet ;)

Mar 21 2021, 1:38 PM · Restricted Project

Mar 20 2021

mizvekov updated the summary of D99005: [clang] Implement P2266 Simpler implicit move.
Mar 20 2021, 7:19 PM · Restricted Project