summaryrefslogtreecommitdiffstats
path: root/clang/lib/Tooling/Execution.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [Tooling] Expose ExecutorName option.Eric Liu2018-10-121-1/+1
| | | | llvm-svn: 344335
* [Tooling] Use UniqueStringSaver. NFCSam McCall2018-07-231-10/+1
| | | | llvm-svn: 337682
* [Tooling] Optimize memory usage in InMemoryToolResults.Haojian Wu2018-04-111-2/+11
| | | | | | | | | | | | | | Avoid storing duplicated "std::string"s. clangd's global-symbol-builder takes 20+GB memory running across LLVM repository. With this patch, the used memory is ~10GB (running on 48 threads, most of meory are AST-related). Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D45479 llvm-svn: 329784
* Add a tool executor that runs actions on all TUs in the compilation database.Eric Liu2018-01-051-1/+4
| | | | | | | | | | | | Summary: Tool results are deduplicated by the result key. Reviewers: hokein Subscribers: klimek, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D41729 llvm-svn: 321864
* [Tooling] Fix linking of StandaloneToolExecutorPlugin.Eric Liu2017-11-031-1/+7
| | | | llvm-svn: 317332
* [Tooling] Put createExecutorFromCommandLineArgs implementation in a wrapper. NFCEric Liu2017-11-031-3/+13
| | | | llvm-svn: 317328
* [Tooling] A new framework for executing clang frontend actions.Eric Liu2017-10-261-0/+89
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
OpenPOWER on IntegriCloud