| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Index: Remove unused internal header SimpleFormatContext.h, NFC Looks like nothing has included this header since d21485d2f5ffacf7b726c741ee409b3682045255 / r286279 in 2016. Delete the dead code. | 5 年前 | |
Avoid including FileManager.h from SourceManager.h Most clients of SourceManager.h need to do things like turning source locations into file & line number pairs, but this doesn't require bringing in FileManager.h and LLVM's FS headers. The main code change here is to sink SM::createFileID into the cpp file. I reason that this is not performance critical because it doesn't happen on the diagnostic path, it happens along the paths of macro expansion (could be hot) and new includes (less hot). Saves some includes: 309 - /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileManager.h 272 - /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileSystemOptions.h 271 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/VirtualFileSystem.h 267 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/FileSystem.h 266 - /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Chrono.h Differential Revision: https://reviews.llvm.org/D75406 | 6 年前 | |
[llvm][clang][NFC] updates inline licence info Some files still contained the old University of Illinois Open Source Licence header. This patch replaces that with the Apache 2 with LLVM Exception licence. Differential Revision: https://reviews.llvm.org/D107528 | 4 年前 | |
[index] Fix performance regression with indexing macros When using FileIndexRecord with macros, symbol references can be seen out of source order, which was causing a regression to insert the symbols into a vector. Instead, we now lazily sort the vector. The impact is small on most code, but in very large files with many macro references (M) near the beginning of the file followed by many decl references (D) it was O(M*D). A particularly bad protobuf-generated header was observed with a 100% regression in practice. rdar://78628133 | 4 年前 | |
[AST] Improve traversal of concepts and concept requirements - Do not traverse concept decl inside AutoType. We only traverse declaration and definitions, not references to a declaration. - Do not visit implicit AST node the relevant traversal mode. - Add traversal extension points for concept requirements. - Renamed TraverseConceptReference to mark as helper to share the code. Having an extension point there seems confusing given that there are many concept refences in the AST that do not call the helper. Those are AutoType, AutoTypeLoc and constraint requirements. Only clangd code requires an update. There are no use-cases for concept requirement traversals yet, but I added them in the earlier version of the patch and decided to keep them for completeness. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124532 | 4 年前 | |
[Index] [clangd] Support for concept declarations and requires expressions Add support for concepts and requires expression in the clang index. Genarate USRs for concepts. Also change how RecursiveASTVisitor handles return type requirement in requires expressions. The new code unpacks the synthetic template parameter list used for storing the actual expression. This simplifies implementation of the indexing. No code seems to depend on the original traversal anyway and the synthesized template parameter list is easily accessible from inside the requires expression if needed. Add tests in the clangd codebase. Fixes https://github.com/clangd/clangd/issues/1103. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124441 | 4 年前 | |
[Index] [clangd] Support for concept declarations and requires expressions Add support for concepts and requires expression in the clang index. Genarate USRs for concepts. Also change how RecursiveASTVisitor handles return type requirement in requires expressions. The new code unpacks the synthetic template parameter list used for storing the actual expression. This simplifies implementation of the indexing. No code seems to depend on the original traversal anyway and the synthesized template parameter list is easily accessible from inside the requires expression if needed. Add tests in the clangd codebase. Fixes https://github.com/clangd/clangd/issues/1103. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124441 | 4 年前 | |
[Index] [clangd] Support for concept declarations and requires expressions Add support for concepts and requires expression in the clang index. Genarate USRs for concepts. Also change how RecursiveASTVisitor handles return type requirement in requires expressions. The new code unpacks the synthetic template parameter list used for storing the actual expression. This simplifies implementation of the indexing. No code seems to depend on the original traversal anyway and the synthesized template parameter list is easily accessible from inside the requires expression if needed. Add tests in the clangd codebase. Fixes https://github.com/clangd/clangd/issues/1103. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124441 | 4 年前 | |
Speculatively fix this harder and with improved spelling capabilities. | 5 年前 | |
[Index] [clangd] Support for concept declarations and requires expressions Add support for concepts and requires expression in the clang index. Genarate USRs for concepts. Also change how RecursiveASTVisitor handles return type requirement in requires expressions. The new code unpacks the synthetic template parameter list used for storing the actual expression. This simplifies implementation of the indexing. No code seems to depend on the original traversal anyway and the synthesized template parameter list is easily accessible from inside the requires expression if needed. Add tests in the clangd codebase. Fixes https://github.com/clangd/clangd/issues/1103. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124441 | 4 年前 | |
[index] Improve macro indexing support The major change here is to index macro occurrences in more places than before, specifically * In non-expansion references such as #if, #ifdef, etc. * When the macro is a reference to a builtin macro such as __LINE__. * When using the preprocessor state instead of callbacks, we now include all definition locations and undefinitions instead of just the latest one (which may also have had the wrong location previously). * When indexing an existing module file (.pcm), we now include module macros, and we no longer report unrelated preprocessor macros during indexing the module, which could have caused duplication. Additionally, we now correctly obey the system symbol filter for macros, so by default in system headers only definition/undefinition occurrences are reported, but it can be configured to report references as well if desired. Extends FileIndexRecord to support occurrences of macros. Since the design of this type is to keep a single list of entities organized by source location, we incorporate macros into the existing DeclOccurrence struct. Differential Revision: https://reviews.llvm.org/D99758 | 5 年前 | |
[Index] [clangd] Support for concept declarations and requires expressions Add support for concepts and requires expression in the clang index. Genarate USRs for concepts. Also change how RecursiveASTVisitor handles return type requirement in requires expressions. The new code unpacks the synthetic template parameter list used for storing the actual expression. This simplifies implementation of the indexing. No code seems to depend on the original traversal anyway and the synthesized template parameter list is easily accessible from inside the requires expression if needed. Add tests in the clangd codebase. Fixes https://github.com/clangd/clangd/issues/1103. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D124441 | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 6 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 4 年前 |