summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-03-04 20:33:40 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2013-03-04 20:33:40 +0000
commit2a513e8218e7b5a9ee865d5ab09c892dce3944fc (patch)
tree6823f3f1078b4b86ed7d4e9753461093c979e263 /clang/lib
parent05e22f2ef0dd954b7328c0fbf619d2c0089870e1 (diff)
downloadbcm5719-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.cpp9
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>
OpenPOWER on IntegriCloud