Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5 |
|
#
c8f47925 |
| 08-Nov-2022 |
Rageking8 <tomleetyt@gmail.com> |
Fix dupe word typos
This revision fixes typos where there are 2 consecutive words which are duplicated. There should be no code changes in this revision (only changes to comments and docs). Do let m
Fix dupe word typos
This revision fixes typos where there are 2 consecutive words which are duplicated. There should be no code changes in this revision (only changes to comments and docs). Do let me know if there are any undesirable changes in this revision. Thanks.
show more ...
|
Revision tags: llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
#
4d006520 |
| 26-Feb-2022 |
Sam McCall <sam.mccall@gmail.com> |
[clangd] Clean up unused includes. NFCI
Add includes where needed to fix build. Haven't systematically added used headers, so there is still accidental dependency on transitive includes.
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
c0e3c893 |
| 13-Dec-2021 |
Christian Kühnel <kuhnel@google.com> |
[NFC][clangd] cleaning up llvm-qualified-auto
This is a cleanup of all llvm-qualified-auto findings. This patch was created by automatically applying the fixes from clang-tidy.
Differential Revisio
[NFC][clangd] cleaning up llvm-qualified-auto
This is a cleanup of all llvm-qualified-auto findings. This patch was created by automatically applying the fixes from clang-tidy.
Differential Revision: https://reviews.llvm.org/D113898
show more ...
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init |
|
#
a0987e35 |
| 23-Jul-2021 |
Kirill Bobyrev <kbobyrev@google.com> |
[clangd] Improve performance of dex by 45-60%
Take full advantage of AND's iterator children size estimation: use early reset in sync() and prevent large overhead. The idea is that the children at t
[clangd] Improve performance of dex by 45-60%
Take full advantage of AND's iterator children size estimation: use early reset in sync() and prevent large overhead. The idea is that the children at the beginning of the list are smaller and cheaper to advance. Very large children negate the effect of this performance optimisation and hence should be advanced only when absolutely necessary. By reducing the number of large iterators' updates, we increase the performance by a large margin.
This change was tested on a comprehensive query dataset. The performance boost increases with the average length of the query, on small queries it is close to 45% but the longer they go the closer it gets to 60% and beyond.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D106528
show more ...
|
#
907efdf9 |
| 21-Jul-2021 |
Kirill Bobyrev <kbobyrev@google.com> |
[clangd] Cleanup FuzzyFindRequest serialization and dex benchmark
* Due to the LLVM's JSON library changes (?), FuzzyFindRequest serialization is no longer valid since arrays are serialized as llv
[clangd] Cleanup FuzzyFindRequest serialization and dex benchmark
* Due to the LLVM's JSON library changes (?), FuzzyFindRequest serialization is no longer valid since arrays are serialized as llvm::json::Array already. Hence, current implementation creates a nested array. * YAML format is no longer the default, mention this for the benchmark. * FIXME is no longer relevant. I ran benchmarks that showed no improvement with priority_queue years ago.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D106432
show more ...
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
#
1c705d9c |
| 14-Aug-2019 |
Jonas Devlieghere <jonas@devlieghere.com> |
[clang-tools-extra] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical r
[clang-tools-extra] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of (hopefully) all the llvm::make_unique instances across the monorepo.
Differential revision: https://reviews.llvm.org/D66259
llvm-svn: 368944
show more ...
|
Revision tags: llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
#
f2001aa7 |
| 07-Jan-2019 |
Ilya Biryukov <ibiryukov@google.com> |
[clangd] Remove 'using namespace llvm' from .cpp files. NFC
The new guideline is to qualify with 'llvm::' explicitly both in '.h' and '.cpp' files. This simplifies moving the code between header and
[clangd] Remove 'using namespace llvm' from .cpp files. NFC
The new guideline is to qualify with 'llvm::' explicitly both in '.h' and '.cpp' files. This simplifies moving the code between header and source files and is easier to keep consistent.
llvm-svn: 350531
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3, llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
c008af64 |
| 20-Oct-2018 |
Sam McCall <sam.mccall@gmail.com> |
[clangd] Namespace style cleanup in cpp files. NFC.
Standardize on the most common namespace setup in our *.cpp files: using namespace llvm; namespace clang { namespace clangd { void foo(Str
[clangd] Namespace style cleanup in cpp files. NFC.
Standardize on the most common namespace setup in our *.cpp files: using namespace llvm; namespace clang { namespace clangd { void foo(StringRef) { ... } And remove redundant llvm:: qualifiers. (Except for cases like make_unique where this causes problems with std:: and ADL).
This choice is pretty arbitrary, but some broad consistency is nice. This is going to conflict with everything. Sorry :-/
Squash the other configurations:
A) using namespace llvm; using namespace clang; using namespace clangd; void clangd::foo(StringRef); This is in some of the older files. (It prevents accidentally defining a new function instead of one in the header file, for what that's worth).
B) namespace clang { namespace clangd { void foo(llvm::StringRef) { ... } This is fine, but in practice the using directive often gets added over time.
C) namespace clang { namespace clangd { using namespace llvm; // inside the namespace This was pretty common, but is a bit misleading: name lookup preferrs clang::clangd::foo > clang::foo > llvm:: foo (no matter where the using directive is).
llvm-svn: 344850
show more ...
|
#
4a5ff88f |
| 07-Oct-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] NFC: Migrate to LLVM STLExtras API where possible
This patch improves readability by migrating `std::function(ForwardIt start, ForwardIt end, ...)` to LLVM's STLExtras range-based equivalen
[clangd] NFC: Migrate to LLVM STLExtras API where possible
This patch improves readability by migrating `std::function(ForwardIt start, ForwardIt end, ...)` to LLVM's STLExtras range-based equivalent `llvm::function(RangeT &&Range, ...)`.
Similar change in Clang: D52576.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D52650
llvm-svn: 343937
show more ...
|
#
87f69eaf |
| 04-Oct-2018 |
Sam McCall <sam.mccall@gmail.com> |
[clangd] Dex: FALSE iterator, peephole optimizations, fix AND bug
Summary: The FALSE iterator will be used in a followup patch to fix a logic bug in Dex (currently, tokens that don't have posting li
[clangd] Dex: FALSE iterator, peephole optimizations, fix AND bug
Summary: The FALSE iterator will be used in a followup patch to fix a logic bug in Dex (currently, tokens that don't have posting lists in the index are simply dropped from the query, changing semantics).
It can usually be optimized away, so added the following opmitizations: - simplify booleans inside AND/OR - replace effectively-empty AND/OR with booleans - flatten nested AND/ORs
While working on this, found a bug in the AND iterator: its constructor sync() assumes that ReachedEnd is set if applicable, but the constructor never sets it. This crashes if a non-first iterator is nonempty.
Reviewers: ilya-biryukov
Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D52789
llvm-svn: 343774
show more ...
|
#
a659d779 |
| 02-Oct-2018 |
Sam McCall <sam.mccall@gmail.com> |
Reland r343589 "[clangd] Dex: add Corpus factory for iterators, rename, fold constant. NFC""
This reverts commit r343610.
llvm-svn: 343622
|
#
2b5259af |
| 02-Oct-2018 |
Reid Kleckner <rnk@google.com> |
Revert r343589 "[clangd] Dex: add Corpus factory for iterators, rename, fold constant. NFC"
Declaring a field with the same name as a type causes GCC to error out:
Dex.h:104:10: error: declaration
Revert r343589 "[clangd] Dex: add Corpus factory for iterators, rename, fold constant. NFC"
Declaring a field with the same name as a type causes GCC to error out:
Dex.h:104:10: error: declaration of 'clang::clangd::dex::Corpus clang::clangd::dex::Dex::Corpus' [-fpermissive] Corpus Corpus; ^ Iterator.h:127:7: error: changes meaning of 'Corpus' from 'class clang::clangd::dex::Corpus' [-fpermissive] class Corpus {
llvm-svn: 343610
show more ...
|
#
a1e7385d |
| 02-Oct-2018 |
Sam McCall <sam.mccall@gmail.com> |
[clangd] Dex: add Corpus factory for iterators, rename, fold constant. NFC
Summary: - Corpus avoids having to pass size to the true iterator, and (soon) any iterator that might optimize down to tr
[clangd] Dex: add Corpus factory for iterators, rename, fold constant. NFC
Summary: - Corpus avoids having to pass size to the true iterator, and (soon) any iterator that might optimize down to true. - Shorten names of factory functions now they're scoped to the Corpus. intersect() and unionOf() rather than createAnd() or createOr() as this seems to read better to me, and fits with other short names. Opinion wanted! - DEFAULT_BOOST_SCORE --> 1. This is a multiplier, don't obfuscate identity. - Simplify variadic templates in Iterator.h
Reviewers: ioeric
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D52711
llvm-svn: 343589
show more ...
|
#
74028360 |
| 02-Oct-2018 |
Sam McCall <sam.mccall@gmail.com> |
[clangd] Dex iterator printer shows query structure, not iterator state.
Summary: This makes it suitable for logging (which immediately found a bug, to be fixed in the next patch...)
Reviewers: ioe
[clangd] Dex iterator printer shows query structure, not iterator state.
Summary: This makes it suitable for logging (which immediately found a bug, to be fixed in the next patch...)
Reviewers: ioeric
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D52715
llvm-svn: 343580
show more ...
|
#
d041f8a9 |
| 25-Sep-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] NFC: Simplify code, enforce LLVM Coding Standards
For consistency, functional-style code pieces are replaced with their simple counterparts to improve readability.
Also, file headers are f
[clangd] NFC: Simplify code, enforce LLVM Coding Standards
For consistency, functional-style code pieces are replaced with their simple counterparts to improve readability.
Also, file headers are fixed to comply with LLVM Coding Standards.
`static` member of anonymous namespace is not marked `static` anymore, because it is redundant.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D52466
llvm-svn: 342974
show more ...
|
Revision tags: llvmorg-7.0.0 |
|
#
249c5864 |
| 13-Sep-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Introduce PostingList interface
This patch abstracts `PostingList` interface and reuses existing implementation. It will be used later to test different `PostingList` representations.
No f
[clangd] Introduce PostingList interface
This patch abstracts `PostingList` interface and reuses existing implementation. It will be used later to test different `PostingList` representations.
No functionality change is introduced, this patch is mostly refactoring so that the following patches could focus on functionality while not being too hard to review.
Reviewed By: sammccall, ioeric
Differential Revision: https://reviews.llvm.org/D51982
llvm-svn: 342155
show more ...
|
#
d9f33b12 |
| 13-Sep-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Don't create child AND and OR iterators with one posting list
`AND( AND( Child ) ... )` -> `AND( Child ... )` `AND( OR( Child ) ... )` -> `AND( Child ... )`
This simple optimization result
[clangd] Don't create child AND and OR iterators with one posting list
`AND( AND( Child ) ... )` -> `AND( Child ... )` `AND( OR( Child ) ... )` -> `AND( Child ... )`
This simple optimization results in 5-6% performance improvement in the benchmark with 2000 serialized `FuzzyFindRequest`s.
Reviewed By: ilya-biryukov
Differential Revision: https://reviews.llvm.org/D52016
llvm-svn: 342124
show more ...
|
Revision tags: llvmorg-7.0.0-rc3 |
|
#
59491a1f |
| 10-Sep-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Make advanceTo() faster on Posting Lists
If the current element is already beyond advanceTo()'s DocID, just return instead of doing binary search. This simple optimization saves up to 6-7%
[clangd] Make advanceTo() faster on Posting Lists
If the current element is already beyond advanceTo()'s DocID, just return instead of doing binary search. This simple optimization saves up to 6-7% performance,
Reviewed By: ilya-biryukov
Differential Revision: https://reviews.llvm.org/D51802
llvm-svn: 341781
show more ...
|
#
e4ee0213 |
| 06-Sep-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] NFC: mark single-parameter constructors explicit
Code health: prevent implicit conversions to user-defined types.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D5
[clangd] NFC: mark single-parameter constructors explicit
Code health: prevent implicit conversions to user-defined types.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D51690
llvm-svn: 341543
show more ...
|
#
493b1627 |
| 31-Aug-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[NFC] Cleanup Dex
* Use consistent assertion messages in iterators implementations * Silence a bunch of clang-tidy warnings: use `emplace_back` instead of `push_back` where possible, make sure arg
[NFC] Cleanup Dex
* Use consistent assertion messages in iterators implementations * Silence a bunch of clang-tidy warnings: use `emplace_back` instead of `push_back` where possible, make sure arguments have the same name in header and implementation file, use for loop over ranges where possible
Reviewed by: ioeric
Differential Revision: https://reviews.llvm.org/D51528
llvm-svn: 341190
show more ...
|
#
a2f146fd |
| 30-Aug-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Remove UB introduced in rL341057
llvm-svn: 341066
|
#
38bdac5d |
| 30-Aug-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Implement iterator cost
This patch introduces iterator cost concept to improve the performance of Dex query iterators (mainly, AND iterator). Benchmarks show that the queries become ~10% fa
[clangd] Implement iterator cost
This patch introduces iterator cost concept to improve the performance of Dex query iterators (mainly, AND iterator). Benchmarks show that the queries become ~10% faster.
Before
``` ------------------------------------------------------- Benchmark Time CPU Iteration ------------------------------------------------------- DexAdHocQueries 5883074 ns 5883018 ns 117 DexRealQ 959904457 ns 959898507 ns 1 ```
After
``` ------------------------------------------------------- Benchmark Time CPU Iteration ------------------------------------------------------- DexAdHocQueries 5238403 ns 5238361 ns 130 DexRealQ 873275207 ns 873269453 ns 1 ```
Reviewed by: sammccall
Differential Revision: https://reviews.llvm.org/D51310
llvm-svn: 341057
show more ...
|
#
a98961bc |
| 24-Aug-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Implement LIMIT iterator
This patch introduces LIMIT iterator, which is very important for improving the quality of search query. LIMIT iterators can be applied on top of BOOST iterators to
[clangd] Implement LIMIT iterator
This patch introduces LIMIT iterator, which is very important for improving the quality of search query. LIMIT iterators can be applied on top of BOOST iterators to prevent populating query request with a huge number of low-quality symbols.
Reviewed by: sammccall
Differential Revision: https://reviews.llvm.org/D51029
llvm-svn: 340605
show more ...
|
Revision tags: llvmorg-7.0.0-rc2 |
|
#
7413e985 |
| 22-Aug-2018 |
Kirill Bobyrev <kbobyrev.opensource@gmail.com> |
[clangd] Implement BOOST iterator
This patch introduces BOOST iterator - a substantial block for efficient and high-quality symbol retrieval. The concept of boosting allows performing computationall
[clangd] Implement BOOST iterator
This patch introduces BOOST iterator - a substantial block for efficient and high-quality symbol retrieval. The concept of boosting allows performing computationally inexpensive scoring on the query side so that the final (expensive) scoring can only be applied on the items with the highest preliminary score while eliminating the need to score too many items.
Reviewed by: ilya-biryukov
Differential Revision: https://reviews.llvm.org/D50970
llvm-svn: 340409
show more ...
|