This revision was automatically updated to reflect the committed changes. Closed by commit rG8fd56ea11256: [clang][deps] NFC: Speed up canonical context hash computation (authored by jansvoboda11).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157052/new/ https://reviews.llvm.org/D157052 Files: clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp Index: clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp =================================================================== --- clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp +++ clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp @@ -269,12 +269,13 @@ HashBuilder.add(serialization::VERSION_MAJOR, serialization::VERSION_MINOR); // Hash the BuildInvocation without any input files. - SmallVector<const char *, 32> Args; - llvm::BumpPtrAllocator Alloc; - llvm::StringSaver Saver(Alloc); - CI.generateCC1CommandLine( - Args, [&](const Twine &Arg) { return Saver.save(Arg).data(); }); - HashBuilder.addRange(Args); + SmallString<0> ArgVec; + ArgVec.reserve(4096); + CI.generateCC1CommandLine([&](const Twine &Arg) { + Arg.toVector(ArgVec); + ArgVec.push_back('\0'); + }); + HashBuilder.add(ArgVec); // Hash the module dependencies. These paths may differ even if the invocation // is identical if they depend on the contents of the files in the TU -- for
Index: clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp =================================================================== --- clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp +++ clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp @@ -269,12 +269,13 @@ HashBuilder.add(serialization::VERSION_MAJOR, serialization::VERSION_MINOR); // Hash the BuildInvocation without any input files. - SmallVector<const char *, 32> Args; - llvm::BumpPtrAllocator Alloc; - llvm::StringSaver Saver(Alloc); - CI.generateCC1CommandLine( - Args, [&](const Twine &Arg) { return Saver.save(Arg).data(); }); - HashBuilder.addRange(Args); + SmallString<0> ArgVec; + ArgVec.reserve(4096); + CI.generateCC1CommandLine([&](const Twine &Arg) { + Arg.toVector(ArgVec); + ArgVec.push_back('\0'); + }); + HashBuilder.add(ArgVec); // Hash the module dependencies. These paths may differ even if the invocation // is identical if they depend on the contents of the files in the TU -- for
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits