Skip to content

[llvm][support] Implement tracing virtual file system #88326

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Sep 6, 2024

Conversation

jansvoboda11
Copy link
Contributor

@jansvoboda11 jansvoboda11 commented Apr 10, 2024

LLVM-based tools often use the llvm::vfs::FileSystem instrastructure to access the file system. This patch adds new kind of a VFS that performs lightweight tracing of file system operations on an underlying VFS. This is supposed to aid in investigating file system traffic without resorting to instrumentation on the operating system level. There will be follow-up patches that integrate this into Clang and its dependency scanner.

Copy link

github-actions bot commented Apr 10, 2024

✅ With the latest revision this PR passed the C/C++ code formatter.

@jansvoboda11 jansvoboda11 changed the title [llvm][clang] Trace VFS calls [llvm][support] Implement tracing virtual file system Apr 12, 2024
@jansvoboda11 jansvoboda11 marked this pull request as ready for review April 12, 2024 19:44
@llvmbot llvmbot added clang Clang issues not falling into any other category llvm:support labels Apr 12, 2024
@llvmbot
Copy link
Member

llvmbot commented Apr 12, 2024

@llvm/pr-subscribers-llvm-support

@llvm/pr-subscribers-clang

Author: Jan Svoboda (jansvoboda11)

Changes

LLVM-based tools often use the llvm::vfs::FileSystem instrastructure to access the file system. This patch adds new kind of a VFS that performs lightweight tracing of file system operations on an underlying VFS. This is supposed to aid in investigating file system traffic without resorting to instrumentation on the operating system level. There will be follow-up patches that integrate this into Clang and its dependency scanner.


Full diff: https://github.com/llvm/llvm-project/pull/88326.diff

4 Files Affected:

  • (modified) clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp (+2-24)
  • (modified) llvm/include/llvm/Support/VirtualFileSystem.h (+48)
  • (modified) llvm/lib/Support/VirtualFileSystem.cpp (+13)
  • (modified) llvm/unittests/Support/VirtualFileSystemTest.cpp (+50)
diff --git a/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp b/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
index 697b7d70ff035a..c1a06c1f5ea20e 100644
--- a/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
+++ b/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
@@ -13,33 +13,11 @@
 
 using namespace clang::tooling::dependencies;
 
-namespace {
-struct InstrumentingFilesystem
-    : llvm::RTTIExtends<InstrumentingFilesystem, llvm::vfs::ProxyFileSystem> {
-  unsigned NumStatusCalls = 0;
-  unsigned NumGetRealPathCalls = 0;
-
-  using llvm::RTTIExtends<InstrumentingFilesystem,
-                          llvm::vfs::ProxyFileSystem>::RTTIExtends;
-
-  llvm::ErrorOr<llvm::vfs::Status> status(const llvm::Twine &Path) override {
-    ++NumStatusCalls;
-    return ProxyFileSystem::status(Path);
-  }
-
-  std::error_code getRealPath(const llvm::Twine &Path,
-                              llvm::SmallVectorImpl<char> &Output) override {
-    ++NumGetRealPathCalls;
-    return ProxyFileSystem::getRealPath(Path, Output);
-  }
-};
-} // namespace
-
 TEST(DependencyScanningWorkerFilesystem, CacheStatusFailures) {
   auto InMemoryFS = llvm::makeIntrusiveRefCnt<llvm::vfs::InMemoryFileSystem>();
 
   auto InstrumentingFS =
-      llvm::makeIntrusiveRefCnt<InstrumentingFilesystem>(InMemoryFS);
+      llvm::makeIntrusiveRefCnt<llvm::vfs::TracingFileSystem>(InMemoryFS);
 
   DependencyScanningFilesystemSharedCache SharedCache;
   DependencyScanningWorkerFilesystem DepFS(SharedCache, InstrumentingFS);
@@ -65,7 +43,7 @@ TEST(DependencyScanningFilesystem, CacheGetRealPath) {
   InMemoryFS->addFile("/bar", 0, llvm::MemoryBuffer::getMemBuffer(""));
 
   auto InstrumentingFS =
-      llvm::makeIntrusiveRefCnt<InstrumentingFilesystem>(InMemoryFS);
+      llvm::makeIntrusiveRefCnt<llvm::vfs::TracingFileSystem>(InMemoryFS);
 
   DependencyScanningFilesystemSharedCache SharedCache;
   DependencyScanningWorkerFilesystem DepFS(SharedCache, InstrumentingFS);
diff --git a/llvm/include/llvm/Support/VirtualFileSystem.h b/llvm/include/llvm/Support/VirtualFileSystem.h
index 4b1ca0c3d262b6..1d851d4d9aea51 100644
--- a/llvm/include/llvm/Support/VirtualFileSystem.h
+++ b/llvm/include/llvm/Support/VirtualFileSystem.h
@@ -1125,6 +1125,54 @@ class YAMLVFSWriter {
   void write(llvm::raw_ostream &OS);
 };
 
+/// File system that tracks the number of calls to the underlying file system.
+/// This is particularly useful when wrapped around \c RealFileSystem to add
+/// lightweight tracking of expensive syscalls.
+class TracingFileSystem
+    : public llvm::RTTIExtends<TracingFileSystem, ProxyFileSystem> {
+public:
+  static const char ID;
+
+  std::size_t NumStatusCalls = 0;
+  std::size_t NumOpenFileForReadCalls = 0;
+  std::size_t NumDirBeginCalls = 0;
+  std::size_t NumGetRealPathCalls = 0;
+  std::size_t NumIsLocalCalls = 0;
+
+  TracingFileSystem(llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> FS)
+      : RTTIExtends(std::move(FS)) {}
+
+  ErrorOr<Status> status(const Twine &Path) override {
+    ++NumStatusCalls;
+    return ProxyFileSystem::status(Path);
+  }
+
+  ErrorOr<std::unique_ptr<File>> openFileForRead(const Twine &Path) override {
+    ++NumOpenFileForReadCalls;
+    return ProxyFileSystem::openFileForRead(Path);
+  }
+
+  directory_iterator dir_begin(const Twine &Dir, std::error_code &EC) override {
+    ++NumDirBeginCalls;
+    return ProxyFileSystem::dir_begin(Dir, EC);
+  }
+
+  std::error_code getRealPath(const Twine &Path,
+                              SmallVectorImpl<char> &Output) override {
+    ++NumGetRealPathCalls;
+    return ProxyFileSystem::getRealPath(Path, Output);
+  }
+
+  std::error_code isLocal(const Twine &Path, bool &Result) override {
+    ++NumIsLocalCalls;
+    return ProxyFileSystem::isLocal(Path, Result);
+  }
+
+protected:
+  void printImpl(raw_ostream &OS, PrintType Type,
+                 unsigned IndentLevel) const override;
+};
+
 } // namespace vfs
 } // namespace llvm
 
diff --git a/llvm/lib/Support/VirtualFileSystem.cpp b/llvm/lib/Support/VirtualFileSystem.cpp
index 32b480028e71b4..fe8924585e1ceb 100644
--- a/llvm/lib/Support/VirtualFileSystem.cpp
+++ b/llvm/lib/Support/VirtualFileSystem.cpp
@@ -2877,8 +2877,21 @@ recursive_directory_iterator::increment(std::error_code &EC) {
   return *this;
 }
 
+void TracingFileSystem::printImpl(raw_ostream &OS, PrintType Type,
+                                  unsigned IndentLevel) const {
+  printIndent(OS, IndentLevel);
+  OS << "TracingFileSystem\n";
+  if (Type == PrintType::Summary)
+    return;
+
+  if (Type == PrintType::Contents)
+    Type = PrintType::Summary;
+  getUnderlyingFS().print(OS, Type, IndentLevel + 1);
+}
+
 const char FileSystem::ID = 0;
 const char OverlayFileSystem::ID = 0;
 const char ProxyFileSystem::ID = 0;
 const char InMemoryFileSystem::ID = 0;
 const char RedirectingFileSystem::ID = 0;
+const char TracingFileSystem::ID = 0;
diff --git a/llvm/unittests/Support/VirtualFileSystemTest.cpp b/llvm/unittests/Support/VirtualFileSystemTest.cpp
index 49a2e19e4f74cd..c692590eca2725 100644
--- a/llvm/unittests/Support/VirtualFileSystemTest.cpp
+++ b/llvm/unittests/Support/VirtualFileSystemTest.cpp
@@ -3395,3 +3395,53 @@ TEST(RedirectingFileSystemTest, ExternalPaths) {
 
   EXPECT_EQ(CheckFS->SeenPaths, Expected);
 }
+
+TEST(TracingFileSystemTest, TracingWorks) {
+  auto InMemoryFS = makeIntrusiveRefCnt<vfs::InMemoryFileSystem>();
+  auto TracingFS =
+      makeIntrusiveRefCnt<vfs::TracingFileSystem>(std::move(InMemoryFS));
+
+  EXPECT_EQ(TracingFS->NumStatusCalls, 0u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 0u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 0u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 0u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 0u);
+
+  (void)TracingFS->status("/foo");
+  EXPECT_EQ(TracingFS->NumStatusCalls, 1u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 0u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 0u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 0u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 0u);
+
+  (void)TracingFS->openFileForRead("/foo");
+  EXPECT_EQ(TracingFS->NumStatusCalls, 1u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 1u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 0u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 0u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 0u);
+
+  std::error_code EC;
+  (void)TracingFS->dir_begin("/foo", EC);
+  EXPECT_EQ(TracingFS->NumStatusCalls, 1u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 1u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 1u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 0u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 0u);
+
+  SmallString<128> RealPath;
+  (void)TracingFS->getRealPath("/foo", RealPath);
+  EXPECT_EQ(TracingFS->NumStatusCalls, 1u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 1u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 1u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 1u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 0u);
+
+  bool IsLocal;
+  (void)TracingFS->isLocal("/foo", IsLocal);
+  EXPECT_EQ(TracingFS->NumStatusCalls, 1u);
+  EXPECT_EQ(TracingFS->NumOpenFileForReadCalls, 1u);
+  EXPECT_EQ(TracingFS->NumDirBeginCalls, 1u);
+  EXPECT_EQ(TracingFS->NumGetRealPathCalls, 1u);
+  EXPECT_EQ(TracingFS->NumIsLocalCalls, 1u);
+}

public:
static const char ID;

std::size_t NumStatusCalls = 0;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm contemplating whether to make these atomic. The root FileSystem class inherits from ThreadSafeRefCountedBase, suggesting that VFSs may be thread-safe.

For example in clang-scan-deps, all workers could use single RealFileSystem. If we wrapped that in a single thread-safe TracingFileSystem, we'd very easily get the complete VFS stats. The current non-thread-safe approach would require having N of these VFS stacks and then manually aggregating the individual VFS stats.

Thoughts?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the existing VFSs there appears to be a reasonable subset that currently are thread safe for stat/open/etc., but some definitely aren't. I think it's fine to make this one thread safe and document that it is if the underlying FS is.

I think they can also all be relaxed memory order, you have to have some other synchronization before collecting the numbers at the end anyway.

Copy link
Contributor Author

@jansvoboda11 jansvoboda11 Aug 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aganea Any thoughts? I'm asking because of #88427. I think that making the counters atomic in this PR is not that problematic, since you can still choose how you use the VFS (i.e. how many per core you share), unlike the originally global counters in FileManager in your PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to land this with non-atomic internals and add that feature when/if the need arises.

@jansvoboda11 jansvoboda11 force-pushed the vfs-tracing branch 3 times, most recently from 44791e8 to 0afe6a5 Compare April 13, 2024 02:12
Copy link
Contributor

@Bigcheese Bigcheese left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm with some comments.

public:
static const char ID;

std::size_t NumStatusCalls = 0;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking at the existing VFSs there appears to be a reasonable subset that currently are thread safe for stat/open/etc., but some definitely aren't. I think it's fine to make this one thread safe and document that it is if the underlying FS is.

I think they can also all be relaxed memory order, you have to have some other synchronization before collecting the numbers at the end anyway.

@jansvoboda11 jansvoboda11 merged commit 70fcdb3 into llvm:main Sep 6, 2024
8 checks passed
@jansvoboda11 jansvoboda11 deleted the vfs-tracing branch September 6, 2024 21:14
@llvm-ci
Copy link
Collaborator

llvm-ci commented Sep 6, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-win-fast running on as-builder-3 while building clang,llvm at step 8 "test-build-unified-tree-check-clang-unit".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/2/builds/6155

Here is the relevant piece of the build log for the reference
Step 8 (test-build-unified-tree-check-clang-unit) failure: test (failure)
...
[29/318] Building CXX object tools\clang\unittests\Driver\CMakeFiles\ClangDriverTests.dir\MultilibTest.cpp.obj
[30/318] Building CXX object tools\clang\unittests\Lex\CMakeFiles\LexTests.dir\PPMemoryAllocationsTest.cpp.obj
[31/318] Building CXX object tools\clang\unittests\Lex\CMakeFiles\LexTests.dir\PPConditionalDirectiveRecordTest.cpp.obj
[32/318] Building RC object tools\clang\unittests\ASTMatchers\CMakeFiles\ASTMatchersTests.dir\C_\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\resources\windows_version_resource.rc.res
[33/318] Building CXX object tools\clang\unittests\Lex\CMakeFiles\LexTests.dir\ModuleDeclStateTest.cpp.obj
[34/318] Building CXX object tools\clang\unittests\Analysis\CMakeFiles\ClangAnalysisTests.dir\UnsafeBufferUsageTest.cpp.obj
[35/318] Building CXX object tools\clang\unittests\Lex\CMakeFiles\LexTests.dir\PPDependencyDirectivesTest.cpp.obj
[36/318] Building RC object tools\clang\unittests\ASTMatchers\Dynamic\CMakeFiles\DynamicASTMatchersTests.dir\48b300c34a7217f4dd73b5241653d7e9\llvm-project\llvm\resources\windows_version_resource.rc.res
[37/318] Building CXX object tools\clang\unittests\Basic\CMakeFiles\BasicTests.dir\SourceManagerTest.cpp.obj
[38/318] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\DependencyScanning\DependencyScanningFilesystemTest.cpp.obj
FAILED: tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.obj 
C:\ninja\ccache.exe C:\PROGRA~1\MICROS~2\2022\COMMUN~1\VC\Tools\MSVC\1438~1.331\bin\Hostx64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\unittests\Tooling -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\tools\clang\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\build\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include -IC:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2 /DNDEBUG -MD  /EHs-c- /GR- -std:c++17 /showIncludes /Fotools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\DependencyScanning\DependencyScanningFilesystemTest.cpp.obj /Fdtools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\ /FS -c C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): error C2065: 'InstrumentingFilesystem': undeclared identifier
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): error C2672: 'llvm::makeIntrusiveRefCnt': no matching overloaded function found
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\llvm/ADT/IntrusiveRefCntPtr.h(313): note: could be 'llvm::IntrusiveRefCntPtr<T> llvm::makeIntrusiveRefCnt(Args &&...)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): note: 'llvm::makeIntrusiveRefCnt': invalid template argument for 'T', type expected
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): error C3536: 'InstrumentingFS': cannot be used before it is initialized
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): error C2665: 'clang::tooling::dependencies::DependencyScanningWorkerFilesystem::DependencyScanningWorkerFilesystem': no overloaded function could convert all the argument types
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\include\clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h(343): note: could be 'clang::tooling::dependencies::DependencyScanningWorkerFilesystem::DependencyScanningWorkerFilesystem(clang::tooling::dependencies::DependencyScanningFilesystemSharedCache &,llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: 'clang::tooling::dependencies::DependencyScanningWorkerFilesystem::DependencyScanningWorkerFilesystem(clang::tooling::dependencies::DependencyScanningFilesystemSharedCache &,llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>)': cannot convert argument 2 from 'int' to 'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: 'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>::IntrusiveRefCntPtr': no overloaded function could convert all the argument types
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\llvm/ADT/IntrusiveRefCntPtr.h(180): note: could be 'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>::IntrusiveRefCntPtr(T *)'
        with
        [
            T=llvm::vfs::FileSystem
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: 'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>::IntrusiveRefCntPtr(T *)': cannot convert argument 1 from 'int' to 'T *'
        with
        [
            T=llvm::vfs::FileSystem
        ]
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or parenthesized function-style cast
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\llvm/ADT/IntrusiveRefCntPtr.h(192): note: or       'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>::IntrusiveRefCntPtr(std::unique_ptr<X,std::default_delete<_Ty2>>)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\llvm\include\llvm/ADT/IntrusiveRefCntPtr.h(186): note: or       'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>::IntrusiveRefCntPtr(llvm::IntrusiveRefCntPtr<X>)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: while trying to match the argument list '(int)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: while trying to match the argument list '(clang::tooling::dependencies::DependencyScanningFilesystemSharedCache, int)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1414): note: could be 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,std::nullptr_t,T *)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): note: 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,std::nullptr_t,T *)': expects 4 arguments - 3 provided
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1395): note: or       'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,const T1 &,const T2 &)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): note: 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,const T1 &,const T2 &)': expects 4 arguments - 3 provided
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): note: while trying to match the argument list '(const char [32], const char [3], unsigned int)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(168): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1414): note: could be 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,std::nullptr_t,T *)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(168): note: 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,std::nullptr_t,T *)': expects 4 arguments - 3 provided
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1395): note: or       'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,const T1 &,const T2 &)'
C:\buildbot\as-builder-3\llvm-clang-x86_64-win-fast\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(168): note: 'testing::AssertionResult testing::internal::EqHelper::Compare(const char *,const char *,const T1 &,const T2 &)': expects 4 arguments - 3 provided

@llvm-ci
Copy link
Collaborator

llvm-ci commented Sep 6, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-ubuntu-fast running on sie-linux-worker while building clang,llvm at step 6 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/144/builds/6432

Here is the relevant piece of the build log for the reference
Step 6 (test-build-unified-tree-check-all) failure: test (failure)

@llvm-ci
Copy link
Collaborator

llvm-ci commented Sep 6, 2024

LLVM Buildbot has detected a new failure on builder llvm-clang-x86_64-sie-win running on sie-win-worker while building clang,llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/46/builds/4523

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
...
[207/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\NamedDeclPrinterTest.cpp.obj
[208/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\ASTImporterODRStrategiesTest.cpp.obj
[209/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\DeclBaseTest.cpp.obj
[210/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\AttrTest.cpp.obj
[211/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\SizelessTypesTest.cpp.obj
[212/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\ASTImporterVisibilityTest.cpp.obj
[213/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\DeclPrinterTest.cpp.obj
[214/1117] Building CXX object tools\clang\unittests\CrossTU\CMakeFiles\CrossTUTests.dir\CrossTranslationUnitTest.cpp.obj
[215/1117] Building CXX object tools\clang\unittests\ASTMatchers\CMakeFiles\ASTMatchersTests.dir\ASTMatchersTraversalTest.cpp.obj
[216/1117] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\DependencyScanning\DependencyScanningFilesystemTest.cpp.obj
FAILED: tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.obj 
C:\bin\ccache.exe C:\PROGRA~2\MICROS~1\2019\BUILDT~1\VC\Tools\MSVC\1429~1.301\bin\HostX64\x64\cl.exe  /nologo /TP -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Itools\clang\unittests\Tooling -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\include -Itools\clang\include -Iinclude -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include -IZ:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googlemock\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:preprocessor /Zc:__cplusplus /Oi /bigobj /permissive- /W4 -wd4141 -wd4146 -wd4244 -wd4267 -wd4291 -wd4351 -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4100 -wd4127 -wd4512 -wd4505 -wd4610 -wd4510 -wd4702 -wd4245 -wd4706 -wd4310 -wd4701 -wd4703 -wd4389 -wd4611 -wd4805 -wd4204 -wd4577 -wd4091 -wd4592 -wd4319 -wd4709 -wd5105 -wd4324 -wd4251 -wd4275 -w14062 -we4238 /Gw /O2 /Ob2  -MD  /EHs-c- /GR- -UNDEBUG -std:c++17 /showIncludes /Fotools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\DependencyScanning\DependencyScanningFilesystemTest.cpp.obj /Fdtools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\ /FS -c Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): error C2065: 'InstrumentingFilesystem': undeclared identifier
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): error C2672: 'llvm::makeIntrusiveRefCnt': no matching overloaded function found
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(157): error C2974: 'llvm::makeIntrusiveRefCnt': invalid template argument for 'T', type expected
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\llvm\include\llvm/ADT/IntrusiveRefCntPtr.h(313): note: see declaration of 'llvm::makeIntrusiveRefCnt'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): error C3536: 'InstrumentingFS': cannot be used before it is initialized
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): error C2664: 'clang::tooling::dependencies::DependencyScanningWorkerFilesystem::DependencyScanningWorkerFilesystem(clang::tooling::dependencies::DependencyScanningFilesystemSharedCache &,llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>)': cannot convert argument 2 from 'int' to 'llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(160): note: No constructor could take the source type, or constructor overload resolution was ambiguous
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\include\clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h(343): note: see declaration of 'clang::tooling::dependencies::DependencyScanningWorkerFilesystem::DependencyScanningWorkerFilesystem'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(164): error C2737: 'gtest_ar': const object must be initialized
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(168): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(168): error C2737: 'gtest_ar': const object must be initialized
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(172): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(172): error C2737: 'gtest_ar': const object must be initialized
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(174): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(174): error C2737: 'gtest_ar': const object must be initialized
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(179): error C2660: 'testing::internal::EqHelper::Compare': function does not take 3 arguments
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\third-party\unittest\googletest\include\gtest/gtest.h(1407): note: see declaration of 'testing::internal::EqHelper::Compare'
Z:\b\llvm-clang-x86_64-sie-win\llvm-project\clang\unittests\Tooling\DependencyScanning\DependencyScanningFilesystemTest.cpp(179): error C2737: 'gtest_ar': const object must be initialized
[217/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\RandstructTest.cpp.obj
[218/1117] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\HeaderIncludesTest.cpp.obj
[219/1117] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\CompilationDatabaseTest.cpp.obj
[220/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\ProfilingTest.cpp.obj
[221/1117] Building CXX object tools\clang\unittests\AST\ByteCode\CMakeFiles\InterpTests.dir\toAPValue.cpp.obj
[222/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\ExternalASTSourceTest.cpp.obj
[223/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\StructuralEquivalenceTest.cpp.obj
[224/1117] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\DiagnosticsYamlTest.cpp.obj
[225/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\StmtPrinterTest.cpp.obj
[226/1117] Linking CXX executable tools\clang\unittests\CrossTU\CrossTUTests.exe
[227/1117] Linking CXX executable tools\clang\unittests\ASTMatchers\ASTMatchersTests.exe
[228/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\DeclTest.cpp.obj
[229/1117] Building CXX object tools\clang\unittests\AST\CMakeFiles\ASTTests.dir\ASTImporterTest.cpp.obj
[230/1117] Building CXX object tools\clang\unittests\Tooling\CMakeFiles\ToolingTests.dir\StandardLibraryTest.cpp.obj

@llvm-ci
Copy link
Collaborator

llvm-ci commented Sep 7, 2024

LLVM Buildbot has detected a new failure on builder premerge-monolithic-linux running on premerge-linux-1 while building clang,llvm at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/8147

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
...
77.189 [230/58/270] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTDumperTest.cpp.o
77.638 [229/58/271] Linking CXX executable tools/clang/unittests/ASTMatchers/Dynamic/DynamicASTMatchersTests
78.014 [228/58/272] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTContextParentMapTest.cpp.o
78.390 [227/58/273] Building CXX object tools/clang/unittests/ASTMatchers/CMakeFiles/ASTMatchersTests.dir/ASTMatchersTraversalTest.cpp.o
78.391 [226/58/274] Building CXX object tools/clang/unittests/Analysis/FlowSensitive/CMakeFiles/ClangAnalysisFlowSensitiveTests.dir/WatchedLiteralsSolverTest.cpp.o
78.592 [225/58/275] Linking CXX executable tools/clang/unittests/Analysis/ClangAnalysisTests
78.665 [224/58/276] Building CXX object tools/clang/unittests/Analysis/FlowSensitive/CMakeFiles/ClangAnalysisFlowSensitiveTests.dir/UncheckedOptionalAccessModelTest.cpp.o
78.850 [223/58/277] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterFixtures.cpp.o
79.150 [222/58/278] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterObjCTest.cpp.o
80.133 [221/58/279] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.o
FAILED: tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes /usr/bin/ccache /usr/bin/clang++ -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/buildbot/premerge-monolithic-linux/build/tools/clang/unittests/Tooling -I/build/buildbot/premerge-monolithic-linux/llvm-project/clang/unittests/Tooling -I/build/buildbot/premerge-monolithic-linux/llvm-project/clang/include -I/build/buildbot/premerge-monolithic-linux/build/tools/clang/include -I/build/buildbot/premerge-monolithic-linux/build/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/llvm/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/third-party/unittest/googletest/include -I/build/buildbot/premerge-monolithic-linux/llvm-project/third-party/unittest/googlemock/include -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -Wno-nested-anon-types -O3 -DNDEBUG  -Wno-variadic-macros -Wno-gnu-zero-variadic-macro-arguments -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -Wno-suggest-override -std=c++17 -MD -MT tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.o -MF tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.o.d -o tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScanningFilesystemTest.cpp.o -c /build/buildbot/premerge-monolithic-linux/llvm-project/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp
/build/buildbot/premerge-monolithic-linux/llvm-project/clang/unittests/Tooling/DependencyScanning/DependencyScanningFilesystemTest.cpp:157:33: error: use of undeclared identifier 'InstrumentingFilesystem'
      llvm::makeIntrusiveRefCnt<InstrumentingFilesystem>(InMemoryFS);
                                ^
1 error generated.
81.197 [221/57/280] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SizelessTypesTest.cpp.o
81.677 [221/56/281] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/HeaderIncludesTest.cpp.o
82.400 [221/55/282] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ExternalASTSourceTest.cpp.o
83.753 [221/54/283] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ConceptPrinterTest.cpp.o
84.703 [221/53/284] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTypeTraitsTest.cpp.o
85.162 [221/52/285] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclBaseTest.cpp.o
85.279 [221/51/286] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/AttrTest.cpp.o
86.176 [221/50/287] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DiagnosticsYamlTest.cpp.o
86.357 [221/49/288] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ProfilingTest.cpp.o
86.448 [221/48/289] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DataCollectionTest.cpp.o
86.644 [221/47/290] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/NamedDeclPrinterTest.cpp.o
86.816 [221/46/291] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/HeaderAnalysisTest.cpp.o
87.055 [221/45/292] Building CXX object tools/clang/unittests/CrossTU/CMakeFiles/CrossTUTests.dir/CrossTranslationUnitTest.cpp.o
87.651 [221/44/293] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/StandardLibraryTest.cpp.o
87.718 [221/43/294] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclTest.cpp.o
88.042 [221/42/295] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/RandstructTest.cpp.o
88.568 [221/41/296] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/DeclPrinterTest.cpp.o
88.928 [221/40/297] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/FixItTest.cpp.o
89.372 [221/39/298] Building CXX object tools/clang/unittests/AST/ByteCode/CMakeFiles/InterpTests.dir/Descriptor.cpp.o
89.560 [221/38/299] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/TemplateNameTest.cpp.o
89.621 [221/37/300] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StmtPrinterTest.cpp.o
89.856 [221/36/301] Building CXX object tools/clang/unittests/Analysis/FlowSensitive/CMakeFiles/ClangAnalysisFlowSensitiveTests.dir/TypeErasedDataflowAnalysisTest.cpp.o
89.991 [221/35/302] Building CXX object tools/clang/unittests/AST/ByteCode/CMakeFiles/InterpTests.dir/toAPValue.cpp.o
90.831 [221/34/303] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/TypePrinterTest.cpp.o
90.982 [221/33/304] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/CompilationDatabaseTest.cpp.o
91.266 [221/32/305] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTTraverserTest.cpp.o
91.423 [221/31/306] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterVisibilityTest.cpp.o
91.726 [221/30/307] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterGenericRedeclTest.cpp.o
92.067 [221/29/308] Building CXX object tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/DependencyScanning/DependencyScannerTest.cpp.o
92.687 [221/28/309] Building CXX object tools/clang/unittests/StaticAnalyzer/CMakeFiles/StaticAnalysisTests.dir/RangeSetTest.cpp.o
94.021 [221/27/310] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/SourceLocationTest.cpp.o
94.681 [221/26/311] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/StructuralEquivalenceTest.cpp.o
95.094 [221/25/312] Building CXX object tools/clang/unittests/AST/CMakeFiles/ASTTests.dir/ASTImporterODRStrategiesTest.cpp.o

jansvoboda11 added a commit to swiftlang/llvm-project that referenced this pull request Nov 4, 2024
LLVM-based tools often use the `llvm::vfs::FileSystem` instrastructure
to access the file system. This patch adds new kind of a VFS that
performs lightweight tracing of file system operations on an underlying
VFS. This is supposed to aid in investigating file system traffic
without resorting to instrumentation on the operating system level.
There will be follow-up patches that integrate this into Clang and its
dependency scanner.

(cherry picked from commit 70fcdb3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang Clang issues not falling into any other category llvm:support
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants