aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Tooling/Execution.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Tooling/Execution.h')
-rw-r--r--include/clang/Tooling/Execution.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/clang/Tooling/Execution.h b/include/clang/Tooling/Execution.h
index 68aef53cb58f..6bf1cf391b75 100644
--- a/include/clang/Tooling/Execution.h
+++ b/include/clang/Tooling/Execution.h
@@ -37,6 +37,8 @@
namespace clang {
namespace tooling {
+extern llvm::cl::opt<std::string> ExecutorName;
+
/// An abstraction for the result of a tool execution. For example, the
/// underlying result can be in-memory or on-disk.
///
@@ -114,6 +116,13 @@ public:
/// Returns the name of a specific executor.
virtual StringRef getExecutorName() const = 0;
+ /// Should return true iff executor runs all actions in a single process.
+ /// Clients can use this signal to find out if they can collect results
+ /// in-memory (e.g. to avoid serialization costs of using ToolResults).
+ /// The single-process executors can still run multiple threads, but all
+ /// executions are guaranteed to share the same memory.
+ virtual bool isSingleProcess() const = 0;
+
/// Executes each action with a corresponding arguments adjuster.
virtual llvm::Error
execute(llvm::ArrayRef<