[PATCH] D72860: [modules] Do not cache invalid state for modules that we attempted to load.
Volodymyr Sapsai via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 16 12:18:21 PST 2020
vsapsai marked an inline comment as done.
vsapsai added a comment.
Anecdotal build time measurements before and after the change. First row is a clean build, subsequent rows are incremental builds.
| Revision | Before change | After change | Change (after - before) | Relative change |
| -------- | ------------- | ------------ | ----------------------- | --------------- |
| 5da385fb56c <https://reviews.llvm.org/rG5da385fb56cbe92d8bd8f53954056eca1829fe1b> | 27:40 | 28:20 | +40s | +2.41% |
| d4e006e8446 <https://reviews.llvm.org/rGd4e006e84461bb98977388bd8742413d45c245c4> | 30:50 | 28:29 | -141s | -7.62% |
| 77d049d0c65 <https://reviews.llvm.org/rG77d049d0c653798698fa24556115874828aae87b> | 0:28 | 0:28 | 0s | 0% |
| 1b9ef3bbb59 <https://reviews.llvm.org/rG1b9ef3bbb595206b0097b7adec2c1b69eae6fab4> | 0:10 | 0:11 | +1s | +10% |
| ab411801b82 <https://reviews.llvm.org/rGab411801b82783eb7f652701ccfce81b16cf1811> | 11:34 | 11:15 | -19s | -2.74% |
|
Cannot claim huge build time improvements but seems like there are no real regressions.
================
Comment at: clang/lib/Serialization/ModuleManager.cpp:183
// Get a buffer of the file and close the file descriptor when done.
- Buf = FileMgr.getBufferForFile(NewModule->File, /*isVolatile=*/false);
+ Buf = FileMgr.getBufferForFile(NewModule->File, /*isVolatile=*/true);
}
----------------
Made this change because if we don't have a valid module but opened a corresponding .pcm file earlier, there is a high chance that .pcm file was rebuilt.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D72860/new/
https://reviews.llvm.org/D72860
More information about the cfe-commits
mailing list