Author: Alexis Engelke
Date: 2026-04-10T22:11:01+02:00
New Revision: 47eb8b43c99034119ca93f16179dc6003c68a20b

URL: 
https://github.com/llvm/llvm-project/commit/47eb8b43c99034119ca93f16179dc6003c68a20b
DIFF: 
https://github.com/llvm/llvm-project/commit/47eb8b43c99034119ca93f16179dc6003c68a20b.diff

LOG: [UnitTests] Enable PCH (#191402)

I originally didn't enable PCH for unit tests, because I intended to
build a gtest PCH. But while gtest.h is slow, having many large standard
library headers already pre-compiled via the LLVMSupport PCH already
helps a lot, leaving ~250ms for parsing gtest.h (+ a fair amount of time
for template instantiation). Additionally, for unit tests that include
IR or AST headers, re-using the PCHs that include these is more
beneficial than gtest.h. Therefore, no longer disable PCH on unit tests.

Added: 
    

Modified: 
    clang/unittests/Basic/CharInfoTest.cpp
    clang/unittests/Frontend/CompilerInstanceTest.cpp
    llvm/cmake/modules/AddLLVM.cmake
    llvm/unittests/Support/raw_sha1_ostream_test.cpp

Removed: 
    


################################################################################
diff  --git a/clang/unittests/Basic/CharInfoTest.cpp 
b/clang/unittests/Basic/CharInfoTest.cpp
index 491c9afceb6f8..09b827be35397 100644
--- a/clang/unittests/Basic/CharInfoTest.cpp
+++ b/clang/unittests/Basic/CharInfoTest.cpp
@@ -9,7 +9,6 @@
 #include "clang/Basic/CharInfo.h"
 #include "gtest/gtest.h"
 
-using namespace llvm;
 using namespace clang;
 
 // Check that the CharInfo table has been constructed reasonably.

diff  --git a/clang/unittests/Frontend/CompilerInstanceTest.cpp 
b/clang/unittests/Frontend/CompilerInstanceTest.cpp
index d36612e72e268..68578a93d75b5 100644
--- a/clang/unittests/Frontend/CompilerInstanceTest.cpp
+++ b/clang/unittests/Frontend/CompilerInstanceTest.cpp
@@ -173,7 +173,7 @@ TEST(CompilerInstance, SingleModuleParseModeCallback) {
     std::vector<std::string> &SkippedModules;
     ModuleLoadSkippedCallback(std::vector<std::string> &SkippedModules)
         : SkippedModules(SkippedModules) {}
-    void moduleLoadSkipped(Module *Skipped) override {
+    void moduleLoadSkipped(clang::Module *Skipped) override {
       SkippedModules.emplace_back(Skipped->getFullModuleName());
     }
   };

diff  --git a/llvm/cmake/modules/AddLLVM.cmake 
b/llvm/cmake/modules/AddLLVM.cmake
index 0730ba2f529ed..28858db434f91 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -1906,7 +1906,7 @@ function(add_unittest test_suite test_name)
   endif()
 
   list(APPEND LLVM_LINK_COMPONENTS Support) # gtest needs it for raw_ostream
-  add_llvm_executable(${test_name} IGNORE_EXTERNALIZE_DEBUGINFO 
NO_INSTALL_RPATH DISABLE_PCH_REUSE ${ARGN})
+  add_llvm_executable(${test_name} IGNORE_EXTERNALIZE_DEBUGINFO 
NO_INSTALL_RPATH ${ARGN})
   get_subproject_title(subproject_title)
   set_target_properties(${test_name} PROPERTIES FOLDER 
"${subproject_title}/Tests/Unit")
 

diff  --git a/llvm/unittests/Support/raw_sha1_ostream_test.cpp 
b/llvm/unittests/Support/raw_sha1_ostream_test.cpp
index a3cb6f58d3e29..be8333237d81d 100644
--- a/llvm/unittests/Support/raw_sha1_ostream_test.cpp
+++ b/llvm/unittests/Support/raw_sha1_ostream_test.cpp
@@ -6,6 +6,7 @@
 //
 
//===----------------------------------------------------------------------===//
 
+#include "llvm/ADT/StringExtras.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/raw_sha1_ostream.h"
 #include "gtest/gtest.h"
@@ -14,20 +15,6 @@
 
 using namespace llvm;
 
-static std::string toHex(ArrayRef<uint8_t> Input) {
-  static const char *const LUT = "0123456789ABCDEF";
-  size_t Length = Input.size();
-
-  std::string Output;
-  Output.reserve(2 * Length);
-  for (size_t i = 0; i < Length; ++i) {
-    const unsigned char c = Input[i];
-    Output.push_back(LUT[c >> 4]);
-    Output.push_back(LUT[c & 15]);
-  }
-  return Output;
-}
-
 TEST(raw_sha1_ostreamTest, Basic) {
   llvm::raw_sha1_ostream Sha1Stream;
   Sha1Stream << "Hello World!";


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to