//===--- Execution.h - Executing clang frontend actions -*- C++ ---------*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
// This file defines framework for executing clang frontend actions.
//
// The framework can be extended to support different execution plans including
// standalone execution on the given TUs or parallel execution on all TUs in
// the codebase.
//
// In order to enable multiprocessing execution, tool actions are expected to
// output result into the ToolResults provided by the executor. The
// `ToolResults` is an interface that abstracts how results are stored e.g.
// in-memory for standalone execution or on-disk for large-scale execution.
//
// New executors can be registered as ToolExecutorPlugins via the
// `ToolExecutorPluginRegistry`. CLI tools can use
// `createExecutorFromCommandLineArgs` to create a specific registered executor
// according to the command-line arguments.
//
//===----------------------------------------------------------------------===//
namespace clang // end namespace clang
// LLVM_CLANG_TOOLING_EXECUTION_H