|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, 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, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2 |
|
| #
27e075fc |
| 26-Sep-2022 |
Sam McCall <[email protected]> |
[Syntax] Fix macro-arg handling in TokenBuffer::spelledForExpanded
A few cases were not handled correctly. Notably: #define ID(X) X #define HIDE a ID(b) HIDE spelledForExpanded() would claim H
[Syntax] Fix macro-arg handling in TokenBuffer::spelledForExpanded
A few cases were not handled correctly. Notably: #define ID(X) X #define HIDE a ID(b) HIDE spelledForExpanded() would claim HIDE is an equivalent range of the 'b' it contains, despite the fact that HIDE also covers 'a'.
While trying to fix this bug, I found findCommonRangeForMacroArgs hard to understand (both the implementation and how it's used in spelledForExpanded). It relies on details of the SourceLocation graph that are IMO fairly obscure. So I've added/revised quite a lot of comments and made some naming tweaks.
Fixes https://github.com/clangd/clangd/issues/1289
Differential Revision: https://reviews.llvm.org/D134618
(cherry picked from commit 67268ee11c220b1dfdf84afb10a12371c5ae6400)
show more ...
|
|
Revision tags: 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 |
|
| #
499d0b96 |
| 05-May-2022 |
Sam McCall <[email protected]> |
[clang] createInvocationFromCommandLine -> createInvocation, delete former. NFC
(Followup from 40c13720a4b977d4347bbde53c52a4d0703823c2)
Differential Revision: https://reviews.llvm.org/D125012
|
|
Revision tags: 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, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
ad39b5bc |
| 27-Jan-2022 |
Jim Lin <[email protected]> |
[NFC] Remove duplicate include
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
c79345fb |
| 24-Nov-2021 |
Zarko Todorovski <[email protected]> |
[NFC][Clang][test] Inclusive language: Remove and rephrase uses of sanity test/check in clang/test
Part of work to use more inclusive terms in clang/llvm.
|
|
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, 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 |
|
| #
aa979084 |
| 22-Mar-2021 |
Utkarsh Saxena <[email protected]> |
[clang][Syntax] Optimize expandedTokens for token ranges.
`expandedTokens(SourceRange)` used to do a binary search to get the expanded tokens belonging to a source range. Each binary search uses `is
[clang][Syntax] Optimize expandedTokens for token ranges.
`expandedTokens(SourceRange)` used to do a binary search to get the expanded tokens belonging to a source range. Each binary search uses `isBeforeInTranslationUnit` to order two source locations. This is inherently very slow. By profiling clangd we found out that users like clangd::SelectionTree spend 95% of time in `isBeforeInTranslationUnit`. Also it is worth noting that users of `expandedTokens(SourceRange)` majorly use ranges provided by AST to query this funciton. The ranges provided by AST are token ranges (starting at the beginning of a token and ending at the beginning of another token).
Therefore we can avoid the binary search in majority of the cases by maintaining an index of ExpandedToken by their SourceLocations. We still do binary search for ranges which are not token ranges but such instances are quite low.
Performance: `~/build/bin/clangd --check=clang/lib/Serialization/ASTReader.cpp` Before: Took 2:10s to complete. Now: Took 1:13s to complete.
Differential Revision: https://reviews.llvm.org/D99086
show more ...
|
| #
f43ff34a |
| 12-Mar-2021 |
Kadir Cetinkaya <[email protected]> |
[clang] Mark re-injected tokens appropriately during pragma handling
This hides such tokens from TokenWatcher, preventing crashes in clients trying to match spelled and expanded tokens.
Fixes https
[clang] Mark re-injected tokens appropriately during pragma handling
This hides such tokens from TokenWatcher, preventing crashes in clients trying to match spelled and expanded tokens.
Fixes https://github.com/clangd/clangd/issues/712
Differential Revision: https://reviews.llvm.org/D98483
show more ...
|
|
Revision tags: 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 |
|
| #
f0ab336e |
| 17-Jul-2020 |
Sam McCall <[email protected]> |
[Syntax] expose API for expansions overlapping a spelled token range.
Summary: This allows efficiently accessing all expansions (without iterating over each token and searching), and also identifyin
[Syntax] expose API for expansions overlapping a spelled token range.
Summary: This allows efficiently accessing all expansions (without iterating over each token and searching), and also identifying tokens within a range that are affected by the preprocessor (which is how clangd will use it).
Subscribers: ilya-biryukov, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D84009
show more ...
|
|
Revision tags: 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 |
|
| #
1bf055c9 |
| 07-Apr-2020 |
Marcel Hlopko <[email protected]> |
[Syntax] Add mapping from spelled to expanded tokens for TokenBuffer
Summary: Same restrictions apply as in the other direction: macro arguments are not supported yet, only full macro expansions can
[Syntax] Add mapping from spelled to expanded tokens for TokenBuffer
Summary: Same restrictions apply as in the other direction: macro arguments are not supported yet, only full macro expansions can be mapped.
Taking over from https://reviews.llvm.org/D72581.
Reviewers: gribozavr2, sammccall
Reviewed By: gribozavr2
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77209
show more ...
|
| #
d66afd6d |
| 07-Apr-2020 |
Sam McCall <[email protected]> |
[Syntax] Merge overlapping top-level macros in TokenBuffer
Summary: Our previous definition of "top-level" was too informal, and didn't allow for overlapping macros that each directly produce expand
[Syntax] Merge overlapping top-level macros in TokenBuffer
Summary: Our previous definition of "top-level" was too informal, and didn't allow for overlapping macros that each directly produce expanded tokens. See D77507 for previous discussion.
Fixes http://bugs.llvm.org/show_bug.cgi?id=45428
Reviewers: kadircet, vabridgers
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D77615
show more ...
|
|
Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3 |
|
| #
9619c2cc |
| 29-Feb-2020 |
Kadir Cetinkaya <[email protected]> |
[clang][Syntax] Handle macro arguments in spelledForExpanded
Reviewers: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75446
|
| #
cd9b2e18 |
| 03-Mar-2020 |
Kadir Cetinkaya <[email protected]> |
[clang][Syntax] Add spelledTokenAt helper to TokenBuffer
Reviewers: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D75503
|
| #
8c2cf499 |
| 21-Feb-2020 |
Kadir Cetinkaya <[email protected]> |
[clang][Tooling] Add a way to tokenize a FileRange
Reviewers: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74962
|
|
Revision tags: llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init |
|
| #
038f5388 |
| 18-Dec-2019 |
Ilya Biryukov <[email protected]> |
[Syntax] Uppercase the first letter of the test name. NFC
To match naming style of other tests.
|
|
Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3 |
|
| #
3f8da5d0 |
| 11-Dec-2019 |
Sam McCall <[email protected]> |
[Tooling/Syntax] Helpers to find spelled tokens touching a location.
Summary: Useful when positions are used to target nodes, with before/after ambiguity.
Reviewers: ilya-biryukov, kbobyrev
Subscr
[Tooling/Syntax] Helpers to find spelled tokens touching a location.
Summary: Useful when positions are used to target nodes, with before/after ambiguity.
Reviewers: ilya-biryukov, kbobyrev
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D71356
show more ...
|
|
Revision tags: llvmorg-9.0.1-rc2 |
|
| #
c9c714c7 |
| 03-Dec-2019 |
Sam McCall <[email protected]> |
Reland [clangd] Rethink how SelectionTree deals with macros and #includes.
This reverts commit 905b002c139f039a32ab9bf1fad63d745d12423f.
Avoid tricky (and invalid) comparator for std::set.
|
| #
905b002c |
| 29-Nov-2019 |
Sam McCall <[email protected]> |
Revert "[clangd] Rethink how SelectionTree deals with macros and #includes."
This reverts commit 19daa21f841ad45290c923689ee3d25198651a4c.
It causes a bunch of failures on a bot that I've been unab
Revert "[clangd] Rethink how SelectionTree deals with macros and #includes."
This reverts commit 19daa21f841ad45290c923689ee3d25198651a4c.
It causes a bunch of failures on a bot that I've been unable to reproduce so far: http://45.33.8.238/mac/3308/step_7.txt
show more ...
|
|
Revision tags: llvmorg-9.0.1-rc1 |
|
| #
19daa21f |
| 20-Nov-2019 |
Sam McCall <[email protected]> |
[clangd] Rethink how SelectionTree deals with macros and #includes.
Summary: The exclusive-claim model is successful at resolving conflicts over tokens between parent/child or siblings. However clai
[clangd] Rethink how SelectionTree deals with macros and #includes.
Summary: The exclusive-claim model is successful at resolving conflicts over tokens between parent/child or siblings. However claims at the spelled-token level do the wrong thing for macro expansions, where siblings can be equally associated with the macro invocation. Moreover, any model that only uses the endpoints in a range can fail when a macro invocation occurs inside the node.
To address this, we use the existing TokenBuffer in more depth. Claims are expressed in terms of expanded tokens, so there is no need to worry about macros, includes etc.
Once we know which expanded tokens were claimed, they are mapped onto spelled tokens for hit-testing. This mapping is fairly flexible, currently the handling of macros is pretty simple (map macro args onto spellings, other macro expansions onto the macro name token). This mapping is in principle token-by-token for correctness (though there's some batching for performance).
The aggregation of the selection enum is now more principled as we need to be able to aggregate several hit-test results together.
For simplicity i removed the ability to determine selectedness of TUDecl. (That was originally implemented in 90a5bf92ff97b1, but doesn't seem to be very important or worth the complexity any longer).
The expandedTokens(SourceLocation) helper could be added locally, but seems to make sense on TokenBuffer.
Fixes https://github.com/clangd/clangd/issues/202 Fixes https://github.com/clangd/clangd/issues/126
Reviewers: hokein
Subscribers: MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits, ilya-biryukov
Tags: #clang
Differential Revision: https://reviews.llvm.org/D70512
show more ...
|
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
| #
6687fde0 |
| 20-Aug-2019 |
Johan Vikstrom <[email protected]> |
[Syntax] Added function to get macro expansion tokens to TokenBuffer.
Summary: Returns the first token in every mapping where the token is an identifier. This API is required to be able to highlight
[Syntax] Added function to get macro expansion tokens to TokenBuffer.
Summary: Returns the first token in every mapping where the token is an identifier. This API is required to be able to highlight macro expansions in clangd.
Reviewers: hokein, ilya-biryukov
Subscribers: kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D66470
llvm-svn: 369385
show more ...
|
| #
2b3d49b6 |
| 14-Aug-2019 |
Jonas Devlieghere <[email protected]> |
[Clang] 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 o
[Clang] 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: 368942
show more ...
|
|
Revision tags: llvmorg-9.0.0-rc2 |
|
| #
b455fc42 |
| 01-Aug-2019 |
Ilya Biryukov <[email protected]> |
[Preprocessor] Always discard body of #define if we failed to parse it
Summary: Preivously we would only discard it if we failed to parse parameter lists. If we do not consume the body, parser sees
[Preprocessor] Always discard body of #define if we failed to parse it
Summary: Preivously we would only discard it if we failed to parse parameter lists. If we do not consume the body, parser sees tokens inside directive. In turn, this leads to spurious diagnostics and a crash in TokenBuffer, see the added tests.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D65517
llvm-svn: 367530
show more ...
|
|
Revision tags: llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3 |
|
| #
5e69f27e |
| 24-Jun-2019 |
Ilya Biryukov <[email protected]> |
[Syntax] Do not glue multiple empty PP expansions to a single mapping
Summary: This change makes sure we have a single mapping for each macro expansion, even if the result of expansion was empty.
T
[Syntax] Do not glue multiple empty PP expansions to a single mapping
Summary: This change makes sure we have a single mapping for each macro expansion, even if the result of expansion was empty.
To achieve that, we take information from PPCallbacks::MacroExpands into account. Previously we relied only on source locations of expanded tokens.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62953
llvm-svn: 364236
show more ...
|
| #
26c066d6 |
| 19-Jun-2019 |
Ilya Biryukov <[email protected]> |
[Syntax] Fix a crash when dumping empty token buffer
llvm-svn: 363801
|
| #
5aed309a |
| 18-Jun-2019 |
Ilya Biryukov <[email protected]> |
[Syntax] Add a helper to find expansion by its first spelled token
Summary: Used in clangd for a code tweak that expands a macro.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: kadircet
[Syntax] Add a helper to find expansion by its first spelled token
Summary: Used in clangd for a code tweak that expands a macro.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D62954
llvm-svn: 363698
show more ...
|
|
Revision tags: llvmorg-8.0.1-rc2 |
|
| #
d4a9cae9 |
| 25-May-2019 |
Duncan P. N. Exon Smith <[email protected]> |
Add missing newline at end of file
llvm-svn: 361708
|
| #
e7230ea7 |
| 22-May-2019 |
Ilya Biryukov <[email protected]> |
Reland r361148 with a fix to the buildbot failure.
Reverted in r361377. Also reland the '.gn' files (reverted in r361389).
llvm-svn: 361391
|