[clang] [clang][deps][modules] Allocate input file paths lazily (PR #114457)
Jan Svoboda via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 1 09:45:03 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:
Ok, tests pass in the Windows CI. I think the preferred separator style was only necessary to preserve the same lexicographical ordering between Unix and Windows (the ordering changes with inconsistent separators). Now that we use the "natural" ordering (based on when `SourceManger` loaded the files), this is no longer necessary.
https://github.com/llvm/llvm-project/pull/114457
More information about the cfe-commits
mailing list