#
fc76b4ad |
| 17-Apr-2020 |
Richard Smith <richard@metafoo.co.uk> |
Rename IsMissingRequirement to IsUnimportable and set it for shadowed modules too.
This more accurately reflects the semantics of this flag, as distinct from "IsAvailable", which (in an explicit mod
Rename IsMissingRequirement to IsUnimportable and set it for shadowed modules too.
This more accurately reflects the semantics of this flag, as distinct from "IsAvailable", which (in an explicit modules world) only describes whether a module is buildable, not whether it's importable.
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 |
|
#
e08464fb |
| 29-Feb-2020 |
Reid Kleckner <rnk@google.com> |
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
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
show more ...
|
#
bc883665 |
| 27-Feb-2020 |
Reid Kleckner <rnk@google.com> |
Forward declare FileEntry and DirectoryEntry in Module.h
FileManager.h is an expensive header (~350ms for me in isolation), so try to do without it.
Notably, we need to avoid checking the alignment
Forward declare FileEntry and DirectoryEntry in Module.h
FileManager.h is an expensive header (~350ms for me in isolation), so try to do without it.
Notably, we need to avoid checking the alignment of FileEntry, which happens for DenseMap<FileEntry*> and PointerUnion<FileEntry*>. I adjusted the code to avoid PointerUnion, and moved the DenseMap insertion to the .cpp file.
Globally, this only saved about ~17 includes of the related headers because SourceManager.h still includes FileManager.h, and it is more popular than Module.h.
show more ...
|
Revision tags: llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1 |
|
#
adcd0268 |
| 28-Jan-2020 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make llvm::StringRef to std::string conversions explicit.
This is how it should've been and brings it more in line with std::string_view. There should be no functional change here.
This is mostly m
Make llvm::StringRef to std::string conversions explicit.
This is how it should've been and brings it more in line with std::string_view. There should be no functional change here.
This is mostly mechanical from a custom clang-tidy check, with a lot of manual fixups. It uncovers a lot of minor inefficiencies.
This doesn't actually modify StringRef yet, I'll do that in a follow-up.
show more ...
|
Revision tags: llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
#
0b4c2ee3 |
| 03-Nov-2019 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
ModuleMap::findHeader - fix null dereference warning. NFCI.
We were checking M for a null value after we'd already dereferenced it multiple times.
|
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, llvmorg-9.0.0-rc2 |
|
#
8d323d15 |
| 01-Aug-2019 |
Harlan Haskins <harlan@harlanhaskins.com> |
[clang] Adopt new FileManager error-returning APIs
Update the callers of FileManager::getFile and FileManager::getDirectory to handle the new llvm::ErrorOr-returning methods.
Signed-off-by: Harlan
[clang] Adopt new FileManager error-returning APIs
Update the callers of FileManager::getFile and FileManager::getDirectory to handle the new llvm::ErrorOr-returning methods.
Signed-off-by: Harlan Haskins <harlan@apple.com> llvm-svn: 367616
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, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1 |
|
#
a5bbbfef |
| 18-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[c++2a] Add semantic support for private module fragments.
llvm-svn: 358713
|
#
db8a7422 |
| 26-Mar-2019 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
FileManager constructs a VFS in its constructor if it isn't passed one, and there's no way to reset it. Make that contract clea
Basic: Return a reference from FileManager::getVirtualFileSystem, NFC
FileManager constructs a VFS in its constructor if it isn't passed one, and there's no way to reset it. Make that contract clear by returning a reference from its accessor.
https://reviews.llvm.org/D59388
llvm-svn: 357038
show more ...
|
Revision tags: 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 ...
|
#
b3e902f4 |
| 29-Dec-2018 |
Richard Trieu <rtrieu@google.com> |
Add vtable anchor to classes.
llvm-svn: 350143
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
5904c41e |
| 05-Nov-2018 |
Benjamin Kramer <benny.kra@googlemail.com> |
Reapply "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"
This reverts commit r345963. We have a path forward now.
Original commit message: The driver accidentally stopped passi
Reapply "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"
This reverts commit r345963. We have a path forward now.
Original commit message: The driver accidentally stopped passing the input filenames on to -cc1 in this mode due to confusion over what action was being requested.
This change also fixes a couple of crashes I encountered when passing multiple files to such a -cc1 invocation.
llvm-svn: 346130
show more ...
|
Revision tags: llvmorg-7.0.1-rc2 |
|
#
dfc56b43 |
| 02-Nov-2018 |
Ilya Biryukov <ibiryukov@google.com> |
Revert "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"
This reverts commit r345803 and r345915 (a follow-up fix to r345803).
Reason: r345803 blocks our internal integrate beca
Revert "Fix regression in behavior of clang -x c++-header -fmodule-name=XXX"
This reverts commit r345803 and r345915 (a follow-up fix to r345803).
Reason: r345803 blocks our internal integrate because of the new warnings showing up in too many places. The fix is actually correct, we will reland it after figuring out how to integrate properly.
llvm-svn: 345963
show more ...
|
Revision tags: llvmorg-7.0.1-rc1 |
|
#
17f00260 |
| 01-Nov-2018 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix regression in behavior of clang -x c++-header -fmodule-name=XXX -fsyntax-only.
The driver accidentally stopped passing the input filenames on to -cc1 in this mode due to confusion over what acti
Fix regression in behavior of clang -x c++-header -fmodule-name=XXX -fsyntax-only.
The driver accidentally stopped passing the input filenames on to -cc1 in this mode due to confusion over what action was being requested.
This change also fixes a couple of crashes I encountered when passing multiple files to such a -cc1 invocation.
llvm-svn: 345803
show more ...
|
#
fc51490b |
| 10-Oct-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
Lift VFS from clang to llvm (NFC)
This patch moves the virtual file system form clang to llvm so it can be used by more projects.
Concretely the patch: - Moves VirtualFileSystem.{h|cpp} from clang
Lift VFS from clang to llvm (NFC)
This patch moves the virtual file system form clang to llvm so it can be used by more projects.
Concretely the patch: - Moves VirtualFileSystem.{h|cpp} from clang/Basic to llvm/Support. - Moves the corresponding unit test from clang to llvm. - Moves the vfs namespace from clang::vfs to llvm::vfs. - Formats the lines affected by this change, mostly this is the result of the added llvm namespace.
RFC on the mailing list: http://lists.llvm.org/pipermail/llvm-dev/2018-October/126657.html
Differential revision: https://reviews.llvm.org/D52783
llvm-svn: 344140
show more ...
|
#
d6509cf2 |
| 15-Sep-2018 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Frontend support for building a header module from a list of headaer files.
llvm-svn: 342304
|
#
0ae00567 |
| 14-Sep-2018 |
Sam McCall <sam.mccall@gmail.com> |
[VFS] vfs::directory_iterator yields path and file type instead of full Status
Summary: Most callers I can find are using only `getName()`. Type is used by the recursive iterator.
Now we don't have
[VFS] vfs::directory_iterator yields path and file type instead of full Status
Summary: Most callers I can find are using only `getName()`. Type is used by the recursive iterator.
Now we don't have to call stat() on every listed file (on most platforms). Exceptions are e.g. Solaris where readdir() doesn't include type information. On those platforms we'll still stat() - see D51918.
The result is significantly faster (stat() can be slow). My motivation: this may allow us to improve clang IO on large TUs with long include search paths. Caching readdir() results may allow us to skip many stat() and open() operations on nonexistent files.
Reviewers: bkramer
Subscribers: fedor.sergeev, cfe-commits
Differential Revision: https://reviews.llvm.org/D51921
llvm-svn: 342232
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
6907ce2f |
| 30-Jul-2018 |
Fangrui Song <maskray@google.com> |
Remove trailing space
sed -Ei 's/[[:space:]]+$//' include/**/*.{def,h,td} lib/**/*.{cpp,h}
llvm-svn: 338291
|
#
5f11e128 |
| 15-Jun-2018 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Improve .Private fix-its to handle 'explicit' and 'framework'
When in the context of suggestion the fix-it from .Private to _Private for private modules, trim off the 'explicit' and add 'f
[Modules] Improve .Private fix-its to handle 'explicit' and 'framework'
When in the context of suggestion the fix-it from .Private to _Private for private modules, trim off the 'explicit' and add 'framework' when appropriate.
rdar://problem/41030554
llvm-svn: 334859
show more ...
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
#
d101b5d7 |
| 01-Jun-2018 |
Erich Keane <erich.keane@intel.com> |
Fix unused variable warning from r333718
llvm-svn: 333752
|
#
9f6020bc |
| 01-Jun-2018 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Warning for module declarations lacking 'framework' qualifier
When a module declaration for a framework lacks the 'framework' qualifier, the listed headers aren't found (because there's no
[Modules] Warning for module declarations lacking 'framework' qualifier
When a module declaration for a framework lacks the 'framework' qualifier, the listed headers aren't found (because there's no trigger for the special framework style path lookup) and the module is silently not built. This leads to frameworks not being modularized by accident, which is pretty bad.
Add a warning and suggest the user to add the 'framework' qualifier when we can prove that it's the case.
rdar://problem/39193062
llvm-svn: 333718
show more ...
|
#
9fc8faf9 |
| 09-May-2018 |
Adrian Prantl <aprantl@apple.com> |
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. Thi
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all.
Patch produced by
for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
Differential Revision: https://reviews.llvm.org/D46320
llvm-svn: 331834
show more ...
|
#
90b0a1fc |
| 20-Apr-2018 |
Jordan Rose <jordan_rose@apple.com> |
Record whether a module came from a private module map
Right now we only use this information in one place, immediately after we calculate it, but it's still nice information to have. The Swift proj
Record whether a module came from a private module map
Right now we only use this information in one place, immediately after we calculate it, but it's still nice information to have. The Swift project is going to use this to tidy up its "API notes" feature (see past discussion on cfe-dev that never quite converged).
Reviewed by Bruno Cardoso Lopes.
llvm-svn: 330452
show more ...
|
Revision tags: llvmorg-6.0.1-rc1 |
|
#
a3b5f71e |
| 16-Apr-2018 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use export_as for autolinking frameworks
framework module SomeKitCore { ... export_as SomeKit }
Given the module above, while generting autolink information during codegen, clang should to emit
Use export_as for autolinking frameworks
framework module SomeKitCore { ... export_as SomeKit }
Given the module above, while generting autolink information during codegen, clang should to emit '-framework SomeKitCore' only if SomeKit was not imported in the relevant TU, otherwise it should use '-framework SomeKit' instead.
rdar://problem/38269782
llvm-svn: 330152
show more ...
|
#
7d29486d |
| 30-Mar-2018 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Improve fixit for framework private module maps
The wrong source range was being provided in some case, fix that to get a better fixit.
rdar://problem/38520199
llvm-svn: 328857
|
Revision tags: llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0 |
|
#
4ea330c8 |
| 24-Feb-2018 |
Daniel Jasper <djasper@google.com> |
Make module use diagnostics refer to the top-level module
All use declarations need to be directly placed in the top-level module anyway, knowing the submodule doesn't really help. The header that h
Make module use diagnostics refer to the top-level module
All use declarations need to be directly placed in the top-level module anyway, knowing the submodule doesn't really help. The header that has the offending #include can easily be seen in the diagnostics source location.
Review: https://reviews.llvm.org/D43673 llvm-svn: 326023
show more ...
|