19 static llvm::cl::opt<std::string>
20 ExecutorName(
"executor", llvm::cl::desc(
"The name of the executor to use."),
21 llvm::cl::init(
"standalone"));
24 KVResults.push_back({Strings.save(Key), Strings.save(Value)});
27 std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
33 llvm::function_ref<
void(StringRef Key, StringRef
Value)> Callback) {
34 for (
const auto &KV : KVResults) {
35 Callback(KV.first, KV.second);
40 Results->addResult(Key, Value);
53 Actions.emplace_back(std::move(Action), std::move(Adjuster));
54 return execute(Actions);
61 const char *Overview) {
66 return OptionsParser.takeError();
67 for (
auto I = ToolExecutorPluginRegistry::begin(),
68 E = ToolExecutorPluginRegistry::end();
73 std::unique_ptr<ToolExecutorPlugin> Plugin(I->instantiate());
75 Plugin->create(*OptionsParser);
77 return llvm::make_error<llvm::StringError>(
78 llvm::Twine(
"Failed to create '") + I->getName() +
80 llvm::inconvertibleErrorCode());
82 return std::move(*Executor);
84 return llvm::make_error<llvm::StringError>(
85 llvm::Twine(
"Executor \"") +
ExecutorName +
"\" is not registered.",
86 llvm::inconvertibleErrorCode());
93 const char *Overview) {
void reportResult(StringRef Key, StringRef Value)
Adds a KV pair to the result container of this execution.
Dataflow Directional Tag Classes.
std::string toString(const til::SExpr *E)