This revision was automatically updated to reflect the committed changes.
Closed by commit rC322691: [Tooling] Don't deduplicate tool results in the 
All-TUs executor. (authored by ioeric, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D42111?vs=129982&id=130204#toc

Repository:
  rC Clang

https://reviews.llvm.org/D42111

Files:
  include/clang/Tooling/AllTUsExecution.h
  lib/Tooling/AllTUsExecution.cpp


Index: include/clang/Tooling/AllTUsExecution.h
===================================================================
--- include/clang/Tooling/AllTUsExecution.h
+++ include/clang/Tooling/AllTUsExecution.h
@@ -22,7 +22,7 @@
 namespace tooling {
 
 /// \brief Executes given frontend actions on all files/TUs in the compilation
-/// database. The final results will be deduplicated by the result key.
+/// database.
 class AllTUsToolExecutor : public ToolExecutor {
 public:
   static const char *ExecutorName;
Index: lib/Tooling/AllTUsExecution.cpp
===================================================================
--- lib/Tooling/AllTUsExecution.cpp
+++ lib/Tooling/AllTUsExecution.cpp
@@ -33,24 +33,20 @@
 public:
   void addResult(StringRef Key, StringRef Value) override {
     std::unique_lock<std::mutex> LockGuard(Mutex);
-    Results[Key] = Value;
+    Results.addResult(Key, Value);
   }
 
   std::vector<std::pair<std::string, std::string>> AllKVResults() override {
-    std::vector<std::pair<std::string, std::string>> KVs;
-    for (const auto &Pair : Results)
-      KVs.emplace_back(Pair.first().str(), Pair.second);
-    return KVs;
+    return Results.AllKVResults();
   }
 
   void forEachResult(llvm::function_ref<void(StringRef Key, StringRef Value)>
                          Callback) override {
-    for (const auto &Pair : Results)
-      Callback(Pair.first(), Pair.second);
+    Results.forEachResult(Callback);
   }
 
 private:
-  llvm::StringMap<std::string> Results;
+  InMemoryToolResults Results;
   std::mutex Mutex;
 };
 
@@ -153,9 +149,8 @@
 };
 
 static ToolExecutorPluginRegistry::Add<AllTUsToolExecutorPlugin>
-    X("all-TUs",
-      "Runs FrontendActions on all TUs in the compilation database. "
-      "Tool results are deduplicated by the result key and stored in memory.");
+    X("all-TUs", "Runs FrontendActions on all TUs in the compilation database. 
"
+                 "Tool results are stored in memory.");
 
 // This anchor is used to force the linker to link in the generated object file
 // and thus register the plugin.


Index: include/clang/Tooling/AllTUsExecution.h
===================================================================
--- include/clang/Tooling/AllTUsExecution.h
+++ include/clang/Tooling/AllTUsExecution.h
@@ -22,7 +22,7 @@
 namespace tooling {
 
 /// \brief Executes given frontend actions on all files/TUs in the compilation
-/// database. The final results will be deduplicated by the result key.
+/// database.
 class AllTUsToolExecutor : public ToolExecutor {
 public:
   static const char *ExecutorName;
Index: lib/Tooling/AllTUsExecution.cpp
===================================================================
--- lib/Tooling/AllTUsExecution.cpp
+++ lib/Tooling/AllTUsExecution.cpp
@@ -33,24 +33,20 @@
 public:
   void addResult(StringRef Key, StringRef Value) override {
     std::unique_lock<std::mutex> LockGuard(Mutex);
-    Results[Key] = Value;
+    Results.addResult(Key, Value);
   }
 
   std::vector<std::pair<std::string, std::string>> AllKVResults() override {
-    std::vector<std::pair<std::string, std::string>> KVs;
-    for (const auto &Pair : Results)
-      KVs.emplace_back(Pair.first().str(), Pair.second);
-    return KVs;
+    return Results.AllKVResults();
   }
 
   void forEachResult(llvm::function_ref<void(StringRef Key, StringRef Value)>
                          Callback) override {
-    for (const auto &Pair : Results)
-      Callback(Pair.first(), Pair.second);
+    Results.forEachResult(Callback);
   }
 
 private:
-  llvm::StringMap<std::string> Results;
+  InMemoryToolResults Results;
   std::mutex Mutex;
 };
 
@@ -153,9 +149,8 @@
 };
 
 static ToolExecutorPluginRegistry::Add<AllTUsToolExecutorPlugin>
-    X("all-TUs",
-      "Runs FrontendActions on all TUs in the compilation database. "
-      "Tool results are deduplicated by the result key and stored in memory.");
+    X("all-TUs", "Runs FrontendActions on all TUs in the compilation database. "
+                 "Tool results are stored in memory.");
 
 // This anchor is used to force the linker to link in the generated object file
 // and thus register the plugin.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to