Check if a path is already absolute before trying to make it so.
authorBob Wilson <bob.wilson@apple.com>
Sat, 26 Mar 2016 18:55:13 +0000 (18:55 +0000)
committerBob Wilson <bob.wilson@apple.com>
Sat, 26 Mar 2016 18:55:13 +0000 (18:55 +0000)
commitf43354f69c1f56016a2d7add6155332d866d4a2c
treeaff95eca2e1416ed3e7860596f9e927469a63857
parent1460e9f1ca07af1189971429eee76d7c0d086103
Check if a path is already absolute before trying to make it so.

The FileSystem::makeAbsolute function has been calculating the current
working directory unconditionally, even when it is not needed. This calls
down to llvm::sys::fs::current_path, which is relatively expensive
because it stats two directories, regardless of whether those paths are
already in the stat cache. The net effect is that when using the
VFS, every stat during header search turns into three stats. With this
change, we get back to a single stat for absolute directory paths.

llvm-svn: 264519
clang/lib/Basic/VirtualFileSystem.cpp