Add "-token-cache" option for using pretokenized cache files.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60440 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 5c89ed0..2870c3d 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -155,6 +155,15 @@
 GenerateDebugInfo("g",
                   llvm::cl::desc("Generate source level debug information"));
 
+
+//===----------------------------------------------------------------------===//
+// PTH.
+//===----------------------------------------------------------------------===//
+
+static llvm::cl::opt<std::string>
+TokenCache("token-cache", llvm::cl::value_desc("path"),
+           llvm::cl::desc("Use specified token cache file"));
+
 //===----------------------------------------------------------------------===//
 // Diagnostic Options
 //===----------------------------------------------------------------------===//
@@ -904,6 +913,12 @@
   PredefineBuffer.push_back(0);
   PP.setPredefines(&PredefineBuffer[0]);
   
+  // Use PTH.
+  if (!TokenCache.empty()) {
+    PTHManager* PM = PTHManager::Create(TokenCache, PP);
+    if (PM) PP.setPTHManager(PM);    
+  }
+  
   // Once we've read this, we're done.
   return false;
 }