From 12541b5ed59d00c6a2ac90ccaf7aa8ff37d8d84b Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Sun, 23 Aug 2020 00:40:16 +0000 Subject: [PATCH] Use TranslateFromMLIRRegistration for SPIRV roundtrip (NFC) This is aligning it with the other "translation" which operates on a MLIR input. --- .../SPIRV/Serialization/TranslateRegistration.cpp | 35 ++++++++-------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp b/mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp index 42b458d..d0aa277 100644 --- a/mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp +++ b/mlir/lib/Dialect/SPIRV/Serialization/TranslateRegistration.cpp @@ -115,23 +115,17 @@ void registerToSPIRVTranslation() { // Round-trip registration //===----------------------------------------------------------------------===// -static LogicalResult roundTripModule(llvm::SourceMgr &sourceMgr, - bool emitDebugInfo, raw_ostream &output, - MLIRContext *context) { - // Parse an MLIR module from the source manager. - auto srcModule = OwningModuleRef(parseSourceFile(sourceMgr, context)); - if (!srcModule) - return failure(); - +static LogicalResult roundTripModule(ModuleOp srcModule, bool emitDebugInfo, + raw_ostream &output) { SmallVector binary; - - auto spirvModules = srcModule->getOps(); + MLIRContext *context = srcModule.getContext(); + auto spirvModules = srcModule.getOps(); if (spirvModules.begin() == spirvModules.end()) - return srcModule->emitError("found no 'spv.module' op"); + return srcModule.emitError("found no 'spv.module' op"); if (std::next(spirvModules.begin()) != spirvModules.end()) - return srcModule->emitError("found more than one 'spv.module' op"); + return srcModule.emitError("found more than one 'spv.module' op"); if (failed(spirv::serialize(*spirvModules.begin(), binary, emitDebugInfo))) return failure(); @@ -152,21 +146,16 @@ static LogicalResult roundTripModule(llvm::SourceMgr &sourceMgr, namespace mlir { void registerTestRoundtripSPIRV() { - TranslateRegistration roundtrip( - "test-spirv-roundtrip", [](llvm::SourceMgr &sourceMgr, - raw_ostream &output, MLIRContext *context) { - return roundTripModule(sourceMgr, /*emitDebugInfo=*/false, output, - context); + TranslateFromMLIRRegistration roundtrip( + "test-spirv-roundtrip", [](ModuleOp module, raw_ostream &output) { + return roundTripModule(module, /*emitDebugInfo=*/false, output); }); } void registerTestRoundtripDebugSPIRV() { - TranslateRegistration roundtrip( - "test-spirv-roundtrip-debug", - [](llvm::SourceMgr &sourceMgr, raw_ostream &output, - MLIRContext *context) { - return roundTripModule(sourceMgr, /*emitDebugInfo=*/true, output, - context); + TranslateFromMLIRRegistration roundtrip( + "test-spirv-roundtrip-debug", [](ModuleOp module, raw_ostream &output) { + return roundTripModule(module, /*emitDebugInfo=*/true, output); }); } } // namespace mlir -- 2.7.4