diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-04 20:33:40 +0000 |
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-04 20:33:40 +0000 |
| commit | 2a513e8218e7b5a9ee865d5ab09c892dce3944fc (patch) | |
| tree | 6823f3f1078b4b86ed7d4e9753461093c979e263 /clang/lib | |
| parent | 05e22f2ef0dd954b7328c0fbf619d2c0089870e1 (diff) | |
| download | bcm5719-llvm-2a513e8218e7b5a9ee865d5ab09c892dce3944fc.tar.gz bcm5719-llvm-2a513e8218e7b5a9ee865d5ab09c892dce3944fc.zip | |
[PCH] In HeaderFileInfoTrait::EqualKey(), use FileManager::getFile() to compare two filenames, instead of llvm::sys::fs::equivalent().
llvm::sys::fs::equivalent() does 2 stat calls every time it's called. Use FileManager::getFile() to take advantage
of the stat caching that FileManager is providing.
llvm-svn: 176450
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index e6ef9f64413..4a4f2aaf912 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -1309,11 +1309,10 @@ bool HeaderFileInfoTrait::EqualKey(internal_key_type a, internal_key_type b) { return false; // Determine whether the actual files are equivalent. - bool Result = false; - if (llvm::sys::fs::equivalent(a, b, Result)) - return false; - - return Result; + FileManager &FileMgr = Reader.getFileManager(); + const FileEntry *FEA = FileMgr.getFile(a); + const FileEntry *FEB = FileMgr.getFile(b); + return (FEA && FEA == FEB); } std::pair<unsigned, unsigned> |

