]> granicus.if.org Git - clang/commitdiff
Revert r143864, as the problem I was actually looking at can be solved
authorChandler Carruth <chandlerc@gmail.com>
Sun, 6 Nov 2011 08:21:04 +0000 (08:21 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 6 Nov 2011 08:21:04 +0000 (08:21 +0000)
a better way. The more I think about it the more worried I am that this
hammer is simply too large. We should only be reaching out to the
filesystem when doing interesting "detection" things, not gratuitously.

Original commit message:
Start pruning down the set of flags passed to CC1 for header search.
This cleans up the CC1 invocations, and reduces the overhead there.
We're still hammering the filesystem looking for the C++ standard
libraries though.

The only reservation I have about this policy is the case of virtualized
files inside of CC1, but it's not clear what the best way to solve that
is. The Driver consistently queries the actual filesystem to make its
decisions. Changing that would be a very large undertaking. It might be
worthwhile, but it's not an immediate goal.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143865 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp

index 6d31e462043773463f630d3d01f439b99bf0a499..3d4f12cb86539130ab7d7ab541fccbbede3e99c9 100644 (file)
@@ -56,10 +56,6 @@ using namespace clang;
 /// \brief Utility function to add a system include directory to CC1 arguments.
 static void addSystemInclude(const ArgList &DriverArgs, ArgStringList &CC1Args,
                              const Twine &Path) {
-  // Prune out non-existent directories to minimize the number of flags.
-  if (!llvm::sys::fs::exists(Path))
-    return;
-
   CC1Args.push_back("-internal-isystem");
   CC1Args.push_back(DriverArgs.MakeArgString(Path));
 }
@@ -74,10 +70,6 @@ static void addSystemInclude(const ArgList &DriverArgs, ArgStringList &CC1Args,
 /// classification.
 static void addExternCSystemInclude(const ArgList &DriverArgs,
                                     ArgStringList &CC1Args, const Twine &Path) {
-  // Prune out non-existent directories to minimize the number of flags.
-  if (!llvm::sys::fs::exists(Path))
-    return;
-
   CC1Args.push_back("-internal-externc-isystem");
   CC1Args.push_back(DriverArgs.MakeArgString(Path));
 }
@@ -88,10 +80,6 @@ static void addSystemIncludes(const ArgList &DriverArgs,
                               ArrayRef<StringRef> Paths) {
   for (ArrayRef<StringRef>::iterator I = Paths.begin(), E = Paths.end();
        I != E; ++I) {
-    // Prune out non-existent directories to minimize the number of flags.
-    if (!llvm::sys::fs::exists(*I))
-      continue;
-
     CC1Args.push_back("-internal-isystem");
     CC1Args.push_back(DriverArgs.MakeArgString(*I));
   }