[all-commits] [llvm/llvm-project] 7847e4: [clang][DependencyScanner] Remove unused -ivfsover...

Michael Spencer via All-commits all-commits at lists.llvm.org
Tue Jan 30 15:39:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7847e44594aa932c0a5f5d2cd15940d2a815c059
      https://github.com/llvm/llvm-project/commit/7847e44594aa932c0a5f5d2cd15940d2a815c059
  Author: Michael Spencer <bigcheesegs at gmail.com>
  Date:   2024-01-30 (Tue, 30 Jan 2024)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSerializationKinds.td
    M clang/include/clang/Basic/FileManager.h
    M clang/include/clang/Lex/HeaderSearch.h
    M clang/include/clang/Lex/HeaderSearchOptions.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/include/clang/Serialization/ASTReader.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/include/clang/Serialization/ModuleFile.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningFilesystem.h
    M clang/include/clang/Tooling/DependencyScanning/DependencyScanningService.h
    M clang/lib/Basic/FileManager.cpp
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Lex/HeaderSearch.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningFilesystem.cpp
    M clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    A clang/test/ClangScanDeps/optimize-vfs-edgecases.m
    A clang/test/ClangScanDeps/optimize-vfs-leak.m
    A clang/test/ClangScanDeps/optimize-vfs-pch.m
    A clang/test/ClangScanDeps/optimize-vfs.m
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp
    M llvm/include/llvm/Support/VirtualFileSystem.h
    M llvm/lib/Support/VirtualFileSystem.cpp
    M llvm/unittests/Support/VirtualFileSystemTest.cpp

  Log Message:
  -----------
  [clang][DependencyScanner] Remove unused -ivfsoverlay files (#73734)

`-ivfsoverlay` files are unused when building most modules. Enable
removing them by,
* adding a way to visit the filesystem tree with extensible RTTI to
  access each `RedirectingFileSystem`.
* Adding tracking to `RedirectingFileSystem` to record when it
  actually redirects a file access.
* Storing this information in each PCM.

Usage tracking is only enabled when iterating over the source manager
and affecting modulemaps. Here each path is stated to cause an access.
During scanning these stats all hit the cache.




More information about the All-commits mailing list