Page MenuHomePhabricator

kbobyrev (Kirill Bobyrev)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 19 2018, 7:14 AM (78 w, 2 d)

Recent Activity

Yesterday

kbobyrev updated the diff for D72746: [clangd] Add a flag for implicit references in the Index.

I started using TokenBuffer, but I ran into the following issue: when I'm
creating TokenBuffer and TokenCollector, they do not contain any tokens.
Preprocessor does not seem to have a non-null Lexer instance, TokenWatcher
(set in TokenCollector) is not triggered anywhere and neither is
Lexer::Lex. I don't have much familiarity with the code and I looked at the
other usages of TokenBuffer but didn't figure out what's wrong with the code
in this patch. I suspect the lexer in Preprocessor should be re-initialized
somehow? I'm certainly missing something here.

Fri, Jan 17, 3:20 PM · Restricted Project
kbobyrev updated the diff for D72638: [clangd] Fix rename for explicit destructor calls.

Address comments

Fri, Jan 17, 8:55 AM · Restricted Project
kbobyrev added inline comments to D72638: [clangd] Fix rename for explicit destructor calls.
Fri, Jan 17, 8:55 AM · Restricted Project
kbobyrev planned changes to D72746: [clangd] Add a flag for implicit references in the Index.

Need to make use of the TokenBuffer, ran into some difficulties when lexing some files and triggering assertions in the process. Will figure it out and update the patch.

Fri, Jan 17, 8:25 AM · Restricted Project
kbobyrev added inline comments to D72746: [clangd] Add a flag for implicit references in the Index.
Fri, Jan 17, 8:25 AM · Restricted Project
kbobyrev updated the diff for D72746: [clangd] Add a flag for implicit references in the Index.

Address alsmost all comments.

Fri, Jan 17, 8:25 AM · Restricted Project

Thu, Jan 16

kbobyrev created D72867: [clangd] Support renaming designated initializers.
Thu, Jan 16, 12:56 PM · Restricted Project
kbobyrev updated the diff for D72867: [clangd] Support renaming designated initializers.

Remove duplicated testt

Thu, Jan 16, 12:56 PM · Restricted Project
kbobyrev updated the summary of D72638: [clangd] Fix rename for explicit destructor calls.
Thu, Jan 16, 11:01 AM · Restricted Project
kbobyrev added a comment to D72638: [clangd] Fix rename for explicit destructor calls.

The patch should probably be correct now.

Thu, Jan 16, 10:32 AM · Restricted Project
kbobyrev updated the diff for D72638: [clangd] Fix rename for explicit destructor calls.

Avoid duplicate references by filtering out destructor calls

Thu, Jan 16, 10:22 AM · Restricted Project
kbobyrev planned changes to D72638: [clangd] Fix rename for explicit destructor calls.

Going to investigate few interesting cases of findExplicitReferences not working as intended and opting out for a clean approach that prevents duplicates from getting into the reference set.

Thu, Jan 16, 9:34 AM · Restricted Project

Tue, Jan 14

kbobyrev added a comment to D72746: [clangd] Add a flag for implicit references in the Index.

The patch could be shorter and slightly less confusing if I preserved 1:1 RefKind::Implicit <-> index::SymbolKind::Implicit relation, but I thought we might want to keep RefKind being 1 byte so that we don't waste unnecessary memory. Also, since we might want to start using findExplicitReferences (or something else we come up with) for indexing, it shouldn't be critical. Let me know if you think it's unnecessary.

Tue, Jan 14, 6:38 PM · Restricted Project
kbobyrev added a comment to D72638: [clangd] Fix rename for explicit destructor calls.

Changed reviewer to @kadircet because Sam would be out until the end of the week.

Tue, Jan 14, 6:29 PM · Restricted Project
kbobyrev created D72746: [clangd] Add a flag for implicit references in the Index.
Tue, Jan 14, 6:29 PM · Restricted Project
kbobyrev edited reviewers for D72638: [clangd] Fix rename for explicit destructor calls, added: kadircet; removed: sammccall.
Tue, Jan 14, 6:29 PM · Restricted Project
kbobyrev updated subscribers of D72746: [clangd] Add a flag for implicit references in the Index.
Tue, Jan 14, 6:29 PM · Restricted Project

Mon, Jan 13

kbobyrev added a comment to D72638: [clangd] Fix rename for explicit destructor calls.

I'm not sure if leaving both ReferenceLocs pointing to the same location is a sensible solution, but merging them seems quite complicated and probably not really worth the effort. I've considered multiple alternative solutions, as described in https://github.com/clangd/clangd/issues/236 and converged to the one presented in this patch.

Mon, Jan 13, 12:18 PM · Restricted Project
kbobyrev created D72638: [clangd] Fix rename for explicit destructor calls.
Mon, Jan 13, 12:18 PM · Restricted Project
kbobyrev updated the summary of D72638: [clangd] Fix rename for explicit destructor calls.
Mon, Jan 13, 12:18 PM · Restricted Project

Thu, Jan 2

kbobyrev updated the diff for D72071: [clangd] Add correctness checks for index-based rename.

Improve wording in the comment

Thu, Jan 2, 2:43 AM · Restricted Project
kbobyrev added a comment to D72071: [clangd] Add correctness checks for index-based rename.

@sammccall Indexed.size() > Lexed.size() is one of the assumptions that I think might not hold in real-world scenarios. I was reading patch heuristics code a lot and trying to understand whether anything breaks when this check is not in place, but I couldn't come up with some cases, so I thought it'd be OK to remove it.

Thu, Jan 2, 2:43 AM · Restricted Project
kbobyrev created D72071: [clangd] Add correctness checks for index-based rename.
Thu, Jan 2, 2:34 AM · Restricted Project

Tue, Dec 31

kbobyrev added a comment to D71110: [clangd] A tool to evaluate cross-file rename..

For some reason, running this patch on a recent version of the source tree fails. The AST parsing fails with fatal diagnostics, but I can't understand why:

Tue, Dec 31, 6:43 AM · Restricted Project

Wed, Dec 25

kbobyrev planned changes to D71880: [clangd] Implement Decl canonicalization rules for rename.

This is a WIP draft. Few items to address before pushing for a review

Wed, Dec 25, 2:25 PM · Restricted Project
kbobyrev created D71880: [clangd] Implement Decl canonicalization rules for rename.
Wed, Dec 25, 2:16 PM · Restricted Project

Fri, Dec 20

kbobyrev accepted D71727: [clang][Tooling] Prefer -x over -std when interpolating.

LGTM

Fri, Dec 20, 2:02 AM · Restricted Project

Thu, Dec 19

kbobyrev planned changes to D71598: [clangd] Filter implicit references from index while renaming.
Thu, Dec 19, 1:13 PM · Restricted Project
kbobyrev added inline comments to D71598: [clangd] Filter implicit references from index while renaming.
Thu, Dec 19, 8:21 AM · Restricted Project
kbobyrev updated the diff for D71598: [clangd] Filter implicit references from index while renaming.

Addressed a bunch of comments to cleanup the patch and replied to ask for clarification of several unresolved comments.

Thu, Dec 19, 8:21 AM · Restricted Project

Dec 19 2019

kbobyrev updated the diff for D71598: [clangd] Filter implicit references from index while renaming.

Move helper function back to the anonymous namespace.

Dec 19 2019, 7:23 AM · Restricted Project
kbobyrev updated the diff for D71598: [clangd] Filter implicit references from index while renaming.

Sorry for a delay: I was trying to work with range patching heuristics and get it to work in generic case of "stale index returns more results than lexer", but in the end I converged to the simplest possible version of the intended change.

Dec 19 2019, 7:23 AM · Restricted Project

Dec 17 2019

kbobyrev added a comment to D71598: [clangd] Filter implicit references from index while renaming.

(also, this should eliminate unwanted changes caused by the index being stale, wouldn't it?)

Dec 17 2019, 6:32 AM · Restricted Project
kbobyrev added a comment to D71598: [clangd] Filter implicit references from index while renaming.

(apologies, the FIXME may imply this approach...)

this approach is based on an assumption: the index results are matched to the latest file content, but this is not always true in practice, our index maybe stale (index results came from an old snapshot of the file), then this approach will fail.

I think we should do it in another direction:

  • add a new RefKind (something like implicit references, or named references) to clangd::Ref
  • when querying the index for rename, we set a corresponding Filter in the query request (or filter out non-interesting references based on the RefKind aftjerwards)
Dec 17 2019, 6:30 AM · Restricted Project
kbobyrev created D71598: [clangd] Filter implicit references from index while renaming.
Dec 17 2019, 4:06 AM · Restricted Project
kbobyrev added a comment to D71455: [NFC] Fix typos in Clangd and Clang.

Renaming handleDeclOccurence, handleMacroOccurence and handleModuleOccurence are definitely not NFC because they are public APIs that can be used by downstream projects.

Dec 17 2019, 12:28 AM · Restricted Project

Dec 16 2019

kbobyrev committed rG3b9715cb2193: [NFC] Fix typos in Clangd and Clang (authored by kbobyrev).
[NFC] Fix typos in Clangd and Clang
Dec 16 2019, 1:55 AM
kbobyrev closed D71455: [NFC] Fix typos in Clangd and Clang.
Dec 16 2019, 1:55 AM · Restricted Project
kbobyrev updated the diff for D71455: [NFC] Fix typos in Clangd and Clang.

Rebase on top of master, fix the build and apply formatting.

Dec 16 2019, 1:36 AM · Restricted Project

Dec 13 2019

kbobyrev created D71455: [NFC] Fix typos in Clangd and Clang.
Dec 13 2019, 1:26 AM · Restricted Project

Dec 12 2019

kbobyrev committed rGec618826dfb9: [clangd] Rename constructors and destructors in cross-file case (authored by kbobyrev).
[clangd] Rename constructors and destructors in cross-file case
Dec 12 2019, 4:15 AM
kbobyrev closed D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 12 2019, 4:15 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 12 2019, 4:06 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 12 2019, 3:30 AM · Restricted Project, Restricted Project
kbobyrev added inline comments to D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 12 2019, 3:20 AM · Restricted Project
kbobyrev added inline comments to D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 12 2019, 2:18 AM · Restricted Project
kbobyrev accepted D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 12 2019, 1:30 AM · Restricted Project
kbobyrev added inline comments to D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 12 2019, 1:30 AM · Restricted Project, Restricted Project
kbobyrev added inline comments to D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 12 2019, 1:30 AM · Restricted Project
kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 12 2019, 1:30 AM · Restricted Project, Restricted Project

Dec 11 2019

kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.

Address the comments and simplify the code.

Dec 11 2019, 8:52 AM · Restricted Project, Restricted Project
kbobyrev added inline comments to D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 11 2019, 7:04 AM · Restricted Project
kbobyrev added a parent revision for D71247: [clangd] Rename constructors and destructors in cross-file case: D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location..
Dec 11 2019, 6:49 AM · Restricted Project, Restricted Project
kbobyrev added a child revision for D71356: [Tooling/Syntax] Helpers to find spelled tokens touching a location.: D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 11 2019, 6:49 AM · Restricted Project
kbobyrev planned changes to D71247: [clangd] Rename constructors and destructors in cross-file case.

Need to address the comments.

Dec 11 2019, 3:15 AM · Restricted Project, Restricted Project

Dec 10 2019

kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.

Add another test for ~^Foo and rebase on top of master.

Dec 10 2019, 4:21 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D71247: [clangd] Rename constructors and destructors in cross-file case.

Improve wording in the comment I moved.

Dec 10 2019, 3:26 AM · Restricted Project, Restricted Project
kbobyrev created D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 10 2019, 3:17 AM · Restricted Project, Restricted Project
kbobyrev updated subscribers of D71247: [clangd] Rename constructors and destructors in cross-file case.
Dec 10 2019, 3:17 AM · Restricted Project, Restricted Project

Dec 5 2019

kbobyrev added a comment to D71029: [clangd] (take 2) Try harder to find a plausible `clang` as argv0, particularly on Mac..

@kbobyrev would you mind verifying this version of the patch also works?
I don't expect changes vs the last one: it's been restructured a lot but the logic should be the same.

Dec 5 2019, 2:57 AM · Restricted Project

Dec 3 2019

kbobyrev committed rG9091f06994f0: [NFC] Slightly improve wording in the comments (authored by kbobyrev).
[NFC] Slightly improve wording in the comments
Dec 3 2019, 1:19 AM
kbobyrev closed D70943: [NFC] Slightly improve wording in the comments.
Dec 3 2019, 1:19 AM · Restricted Project
kbobyrev added inline comments to D70943: [NFC] Slightly improve wording in the comments.
Dec 3 2019, 1:10 AM · Restricted Project
kbobyrev created D70943: [NFC] Slightly improve wording in the comments.
Dec 3 2019, 12:55 AM · Restricted Project

Dec 2 2019

kbobyrev accepted D70863: [clangd] Try harder to find a plausible `clang` as argv0, particularly on Mac..

@kbobyrev would you mind testing this again?

Dropping an empty compile_flags.txt should also work (and test the other codepath)

Dec 2 2019, 5:42 AM · Restricted Project
kbobyrev abandoned D51292: [docs] Update clang-rename documentation.
Dec 2 2019, 2:32 AM
kbobyrev abandoned D52047: [clangd] Add building benchmark and memory consumption tracking.
Dec 2 2019, 2:32 AM · Restricted Project
kbobyrev abandoned D52233: [dexp] Dump JSON representations of fuzzy find requests.
Dec 2 2019, 2:32 AM · Restricted Project
kbobyrev abandoned D52083: [clangd] Store OR iterator children in heap.

Probably not worth investigating at this point.

Dec 2 2019, 2:32 AM · Restricted Project
kbobyrev removed a reviewer for D52030: [clangd] Test benchmark if we can build it: kbobyrev.
Dec 2 2019, 2:23 AM · Restricted Project
kbobyrev added a comment to D70863: [clangd] Try harder to find a plausible `clang` as argv0, particularly on Mac..

The current version of the patch fixes one of the related issues. When running on a simple file like this

Dec 2 2019, 2:23 AM · Restricted Project

Nov 29 2019

kbobyrev added a comment to D70832: [clangd] Log cc1 args at verbose level..

Sorry, seems I was too late :(

Nov 29 2019, 2:31 AM · Restricted Project

Nov 26 2019

kbobyrev committed rGc547c22f1897: [NFC] ASSERT_EQ before accessing items in containers (authored by kbobyrev).
[NFC] ASSERT_EQ before accessing items in containers
Nov 26 2019, 4:51 AM
kbobyrev closed D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 26 2019, 4:51 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70528: [NFC] ASSERT_EQ before accessing items in containers.

Rebase on top of master.

Nov 26 2019, 4:51 AM · Restricted Project, Restricted Project

Nov 22 2019

kbobyrev committed rG7f0dcf665dd2: [clangd] Show lambda signature for lambda autocompletions (authored by kbobyrev).
[clangd] Show lambda signature for lambda autocompletions
Nov 22 2019, 3:57 AM
kbobyrev closed D70445: [clangd] Show lambda signature for lambda autocompletions.
Nov 22 2019, 3:57 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70445: [clangd] Show lambda signature for lambda autocompletions.

Get rid of incomplete identifiers in test code.

Nov 22 2019, 2:37 AM · Restricted Project, Restricted Project

Nov 21 2019

kbobyrev added inline comments to D70445: [clangd] Show lambda signature for lambda autocompletions.
Nov 21 2019, 11:46 PM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70445: [clangd] Show lambda signature for lambda autocompletions.

Simplified the patch to address the comments.

Nov 21 2019, 11:46 PM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 21 2019, 3:31 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 21 2019, 3:21 AM · Restricted Project, Restricted Project
kbobyrev updated the summary of D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 21 2019, 3:21 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 21 2019, 3:02 AM · Restricted Project, Restricted Project
kbobyrev created D70528: [NFC] ASSERT_EQ before accessing items in containers.
Nov 21 2019, 2:10 AM · Restricted Project, Restricted Project
kbobyrev added inline comments to D70445: [clangd] Show lambda signature for lambda autocompletions.
Nov 21 2019, 1:18 AM · Restricted Project, Restricted Project
kbobyrev updated the diff for D70445: [clangd] Show lambda signature for lambda autocompletions.

Add initial support for generic lambdas, put more tests into clang/test/CodeCompletion.

Nov 21 2019, 1:18 AM · Restricted Project, Restricted Project

Nov 19 2019

kbobyrev created D70445: [clangd] Show lambda signature for lambda autocompletions.
Nov 19 2019, 7:56 AM · Restricted Project, Restricted Project

Oct 30 2019

kbobyrev added a comment to D69295: Optimize SHA1 implementation.

I also agree with this. I think llvm/benchmarks would be fine for now either way, but with more benchmarks (which hopefully would be there at some point, I had plans of adding some for a while now but I'm not sure when I'll get to that) subdirectories make sense.

I agree it would be better in llvm/benchmarks, and that is what I tried that first, but had problems with getting the CMakeFile.txt right. I set up the file like this:

set(LLVM_LINK_COMPONENTS
  Support)

add_benchmark(DummyYAML DummyYAML.cpp)
add_benchmark(hash-benchmark hash-benchmark.cpp)

But the first benchmark complained that hash-benchmark.cpp is unused, and the second complained that DummyYAML.cpp is unused in LLVMProcessSources.cmake:112. If someone can help me with the CMake, I'd be glad to switch it back.

Ah, good point! I'll look into that, thank you for bringing it up.

Is it a -DCMAKE_BUILD_TYPE=Release build? I will be pretty surprised if gcc/clang -O3 does not inline these functions.

Yeah, clang -O3 inlines all of them, but gcc -O3 inlines most, but not all of them before this patch. gcc-6 doesn't inline at least some calls of r1, blk, and r3.

Oct 30 2019, 11:50 AM · Restricted Project

Oct 23 2019

kbobyrev added a comment to D69295: Optimize SHA1 implementation.

Add inline to the helper functions because gcc-9 won't inline all of them without the hint. I've avoided attribute((always_inline)) because gcc and clang will inline without it, and improves compatibility.

Is it a -DCMAKE_BUILD_TYPE=Release build? I will be pretty surprised if gcc/clang -O3 does not inline these functions.

The code change looks good, except that the llvm/benchmarks/ directory is underused and you are adding more files.

Yes, I think putting files into llvm/benchmarks would be sensible especially given the lack of other benchmarks right now.

We probably need more consensus (e.g. send an email to the llvm-dev mailing list, referencing http://lists.llvm.org/pipermail/llvm-dev/2018-August/125173.html @kbobyrev) on how benchmark files should be organized.

I also agree with this. I think llvm/benchmarks would be fine for now either way, but with more benchmarks (which hopefully would be there at some point, I had plans of adding some for a while now but I'm not sure when I'll get to that) subdirectories make sense.

Oct 23 2019, 5:47 AM · Restricted Project

Jun 28 2019

kbobyrev accepted D63925: [benchmark] Disable CMake get_git_version.

The change looks good to me, thank you for the patch!

Jun 28 2019, 1:48 PM · Restricted Project

May 12 2019

kbobyrev edited reviewers for D61831: [cmake] Do not generate benchmark targets by default, added: ilya-biryukov, sammccall; removed: kbobyrev.

Could you please elaborate a bit on why you would like to propose this change? I couldn't understand the argument here:

May 12 2019, 12:32 PM · Restricted Project

Feb 17 2019

kbobyrev removed a reviewer for D56644: [clang-tidy] readability-container-size-empty handle std::string length(): omtcyfz.
Feb 17 2019, 12:11 PM · Restricted Project, Restricted Project

Jan 28 2019

kbobyrev updated the summary of D57290: [www] Remove implemented Clang SA projects.
Jan 28 2019, 12:48 PM

Jan 26 2019

kbobyrev updated the diff for D57290: [www] Remove implemented Clang SA projects.

Remove empty Clang SA section for now.

Jan 26 2019, 12:10 PM
kbobyrev created D57290: [www] Remove implemented Clang SA projects.
Jan 26 2019, 12:08 PM

Jan 23 2019

kbobyrev updated subscribers of D57091: [www] Remove implemented Open Project.
Jan 23 2019, 3:57 AM · Restricted Project
kbobyrev added a comment to D57091: [www] Remove implemented Open Project.

@aprantl if there is still some work left for GSoC/potential contributors, feel free to mention it and then it should be just updated for the future. I couldn't infer whether there is still a chunk of work to be done from the project report, but you might have more information.

Jan 23 2019, 3:57 AM · Restricted Project
kbobyrev created D57091: [www] Remove implemented Open Project.
Jan 23 2019, 3:27 AM · Restricted Project
kbobyrev removed reviewers for D51292: [docs] Update clang-rename documentation: ioeric, ilya-biryukov.
Jan 23 2019, 2:52 AM