[clang] [clang][deps][modules] Allocate input file paths lazily (PR #114457)

Jan Svoboda via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 31 13:17:09 PDT 2024


================
@@ -779,23 +795,16 @@ static StringRef makeAbsoluteAndPreferred(CompilerInstance &CI, StringRef Path,
 void ModuleDepCollector::addFileDep(StringRef Path) {
   if (IsStdModuleP1689Format) {
     // Within P1689 format, we don't want all the paths to be absolute path
-    // since it may violate the tranditional make style dependencies info.
-    FileDeps.push_back(std::string(Path));
+    // since it may violate the traditional make style dependencies info.
+    FileDeps.emplace_back(Path);
     return;
   }
 
   llvm::SmallString<256> Storage;
   Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage);
-  FileDeps.push_back(std::string(Path));
+  FileDeps.emplace_back(Path);
 }
 
 void ModuleDepCollector::addFileDep(ModuleDeps &MD, StringRef Path) {
-  if (IsStdModuleP1689Format) {
-    MD.FileDeps.insert(Path);
-    return;
-  }
-
-  llvm::SmallString<256> Storage;
-  Path = makeAbsoluteAndPreferred(ScanInstance, Path, Storage);
----------------
jansvoboda11 wrote:

Removing this is a bit aspirational. I didn't verify that the PCM base directory is absolute, nor that Windows tests still pass without transforming the path to the preferred style (this we might be able to do delegate to the clients that do require it - maybe just `clang-scan-deps` and not the downstream libclang API).

https://github.com/llvm/llvm-project/pull/114457


More information about the cfe-commits mailing list