diff options
author | Eric Liu <ioeric@google.com> | 2017-10-26 10:38:14 +0000 |
---|---|---|
committer | Eric Liu <ioeric@google.com> | 2017-10-26 10:38:14 +0000 |
commit | 826b7832140bda013140d6bcb370331f64f85823 (patch) | |
tree | c82623ad9623d7915bfd7af816b78af3c149b0eb /llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | |
parent | b560a9a1b83523e16c16dfe430aa5f46fd958de5 (diff) | |
download | bcm5719-llvm-826b7832140bda013140d6bcb370331f64f85823.tar.gz bcm5719-llvm-826b7832140bda013140d6bcb370331f64f85823.zip |
[Tooling] A new framework for executing clang frontend actions.
Summary:
This defines a `clang::tooling::ToolExecutor` interface that can be extended to support different execution plans including standalone execution on a given set of TUs or parallel execution on all TUs in a codebase.
In order to enable multiprocessing execution, tool actions are expected to output result into a `ToolResults` interface provided by executors. The `ToolResults` interface abstracts how results are stored e.g. in-memory for standalone executions or on-disk for large-scale execution.
New executors can be registered as `ToolExecutorPlugin`s via the `ToolExecutorPluginRegistry`. CLI tools can use `createExecutorFromCommandLineArgs` to create a specific registered executor according to the command-line arguments.
This patch also implements `StandaloneToolExecutor` which has the same behavior as the current `ClangTool` interface, i.e. execute frontend actions on a given set of TUs. At this point, it's simply a wrapper around `ClangTool` at this point.
This is still experimental but expected to replace the existing `ClangTool` interface so that specific tools would not need to worry about execution.
Reviewers: klimek, arphaman, hokein, sammccall
Reviewed By: klimek
Subscribers: cfe-commits, djasper, mgorny, omtcyfz
Differential Revision: https://reviews.llvm.org/D34272
llvm-svn: 316653
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp')
0 files changed, 0 insertions, 0 deletions