[PATCH] D120569: [clang] Improve laziness of resolving module map headers.
Adam Czachorowski via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Feb 25 08:31:53 PST 2022
adamcz created this revision.
adamcz added a reviewer: kadircet.
adamcz requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
clang has support for lazy headers in module maps - if size and/or
modtime and provided in the cppmap file, headers are only resolved when
an include directive for a file with that size/modtime is encoutered.
Before this change, the lazy resolution was all-or-nothing per module.
That means as soon as even one file in that module potentially matched
an include, all lazy files in that module were resolved. With this
change, only files with matching size/modtime will be resolved.
The goal is to avoid unnecessary stat() calls on non-included files,
which is especially valuable on networked file systems, with higher
latency.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D120569
Files:
clang/include/clang/Lex/ModuleMap.h
clang/lib/Frontend/FrontendAction.cpp
clang/lib/Lex/ModuleMap.cpp
clang/lib/Serialization/ASTWriter.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D120569.411427.patch
Type: text/x-patch
Size: 4372 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220225/7ead4c68/attachment.bin>
More information about the cfe-commits
mailing list