#include "mlir/Tools/mlir-opt/MlirOptMain.h"
#include "mlir/Bytecode/BytecodeWriter.h"
#include "mlir/Debug/CLOptionsSetup.h"
#include "mlir/Debug/Counter.h"
#include "mlir/Debug/DebuggerExecutionContextHook.h"
#include "mlir/Debug/ExecutionContext.h"
#include "mlir/Debug/Observers/ActionLogging.h"
#include "mlir/Dialect/IRDL/IR/IRDL.h"
#include "mlir/Dialect/IRDL/IRDLLoading.h"
#include "mlir/IR/AsmState.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/Dialect.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/MLIRContext.h"
#include "mlir/Parser/Parser.h"
#include "mlir/Pass/Pass.h"
#include "mlir/Pass/PassManager.h"
#include "mlir/Pass/PassRegistry.h"
#include "mlir/Support/FileUtilities.h"
#include "mlir/Support/Timing.h"
#include "mlir/Support/ToolUtilities.h"
#include "mlir/Tools/ParseUtilities.h"
#include "mlir/Tools/Plugins/DialectPlugin.h"
#include "mlir/Tools/Plugins/PassPlugin.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FileUtilities.h"
#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Regex.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/ThreadPool.h"
#include "llvm/Support/ToolOutputFile.h"
usingnamespacemlir;
usingnamespacellvm;
namespace {
class BytecodeVersionParser : public cl::parser<std::optional<int64_t>> { … };
struct MlirOptMainConfigCLOptions : public MlirOptMainConfig { … };
}
ManagedStatic<MlirOptMainConfigCLOptions> clOptionsConfig;
void MlirOptMainConfig::registerCLOptions(DialectRegistry ®istry) { … }
MlirOptMainConfig MlirOptMainConfig::createFromCLOptions() { … }
MlirOptMainConfig &MlirOptMainConfig::setPassPipelineParser(
const PassPipelineCLParser &passPipeline) { … }
void MlirOptMainConfigCLOptions::setDialectPluginsCallback(
DialectRegistry ®istry) { … }
LogicalResult loadIRDLDialects(StringRef irdlFile, MLIRContext &ctx) { … }
static LogicalResult doVerifyRoundTrip(Operation *op,
const MlirOptMainConfig &config,
bool useBytecode) { … }
static LogicalResult doVerifyRoundTrip(Operation *op,
const MlirOptMainConfig &config) { … }
static LogicalResult
performActions(raw_ostream &os,
const std::shared_ptr<llvm::SourceMgr> &sourceMgr,
MLIRContext *context, const MlirOptMainConfig &config) { … }
static LogicalResult processBuffer(raw_ostream &os,
std::unique_ptr<MemoryBuffer> ownedBuffer,
const MlirOptMainConfig &config,
DialectRegistry ®istry,
llvm::ThreadPoolInterface *threadPool) { … }
std::pair<std::string, std::string>
mlir::registerAndParseCLIOptions(int argc, char **argv,
llvm::StringRef toolName,
DialectRegistry ®istry) { … }
static LogicalResult printRegisteredDialects(DialectRegistry ®istry) { … }
static LogicalResult printRegisteredPassesAndReturn() { … }
LogicalResult mlir::MlirOptMain(llvm::raw_ostream &outputStream,
std::unique_ptr<llvm::MemoryBuffer> buffer,
DialectRegistry ®istry,
const MlirOptMainConfig &config) { … }
LogicalResult mlir::MlirOptMain(int argc, char **argv,
llvm::StringRef inputFilename,
llvm::StringRef outputFilename,
DialectRegistry ®istry) { … }
LogicalResult mlir::MlirOptMain(int argc, char **argv, llvm::StringRef toolName,
DialectRegistry ®istry) { … }