[PATCH] D123144: FileManager: std::map => BumpPtrAllocator + DenseMap of pointers
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 6 01:11:33 PDT 2022
sammccall added inline comments.
================
Comment at: clang/lib/Basic/FileManager.cpp:318
FileEntryRef ReturnedRef(*NamedFileEnt);
- if (UFE.isValid()) { // Already have an entry with this inode, return it.
+ if (ReusingEntry) { // Already have an entry with this inode, return it.
----------------
dexonsmith wrote:
> I'm trying to figure out why `ReusingEntry` was necessary. It looks to me like you could just call `UFE->isValid()` here and avoid introducing that `bool`... or am I missing something?
You're right, but I think we can get rid of isValid, and plan to send a patch.
A FileEntry handed out by FileManager always has isValid = true. It's not possible to create a useful FileEntry outside FileManager (and this is never done outside FileManagerTest). So the concept of validity isn't needed.
(IMO the main cost of having the isValid flag is conceptual complexity - lots of places check it, which means people must be thinking about how to handle this case)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123144/new/
https://reviews.llvm.org/D123144
More information about the cfe-commits
mailing list