From e6f0c99d6a10a76ede4af84ecf34d83b55c91a74 Mon Sep 17 00:00:00 2001 From: Andrea Faulds Date: Fri, 24 Jan 2025 18:19:02 +0100 Subject: [PATCH] [mlir][spirv] Make ConvertToSPIRVPass into a test pass (non-public) With the removal of mlir-vulkan-runner (as part of #73457) in e7e3c45bc70904e24e2b3221ac8521e67eb84668, this pass no longer has to be public (previously it had to be so the runner could use it). This commit makes it instead only available for use by mlir-opt. --- .../ConvertToSPIRV/ConvertToSPIRVPass.h | 22 ------- mlir/include/mlir/Conversion/Passes.h | 1 - mlir/include/mlir/Conversion/Passes.td | 29 --------- mlir/lib/Conversion/CMakeLists.txt | 1 - .../Conversion/ConvertToSPIRV/CMakeLists.txt | 36 ----------- .../ConvertToSPIRV/argmax-kernel.mlir | 2 +- .../test/Conversion/ConvertToSPIRV/arith.mlir | 2 +- .../Conversion/ConvertToSPIRV/combined.mlir | 2 +- .../convert-gpu-modules-nested.mlir | 2 +- .../ConvertToSPIRV/convert-gpu-modules.mlir | 2 +- mlir/test/Conversion/ConvertToSPIRV/gpu.mlir | 2 +- .../test/Conversion/ConvertToSPIRV/index.mlir | 2 +- .../Conversion/ConvertToSPIRV/memref.mlir | 2 +- mlir/test/Conversion/ConvertToSPIRV/scf.mlir | 2 +- .../Conversion/ConvertToSPIRV/simple.mlir | 2 +- mlir/test/Conversion/ConvertToSPIRV/ub.mlir | 2 +- .../Conversion/ConvertToSPIRV/vector.mlir | 2 +- mlir/test/lib/Pass/CMakeLists.txt | 1 + .../lib/Pass/TestConvertToSPIRVPass.cpp} | 61 ++++++++++++++++--- .../lib/Pass/TestVulkanRunnerPipeline.cpp | 13 ++-- mlir/tools/mlir-opt/mlir-opt.cpp | 2 + 21 files changed, 74 insertions(+), 116 deletions(-) delete mode 100644 mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h delete mode 100644 mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt rename mlir/{lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp => test/lib/Pass/TestConvertToSPIRVPass.cpp} (71%) diff --git a/mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h b/mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h deleted file mode 100644 index 3852782247527..0000000000000 --- a/mlir/include/mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h +++ /dev/null @@ -1,22 +0,0 @@ -//===- ConvertToSPIRVPass.h - Conversion to SPIR-V pass ---*- 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 -// -//===----------------------------------------------------------------------===// - -#ifndef MLIR_CONVERSION_CONVERTTOSPIRV_CONVERTTOSPIRVPASS_H -#define MLIR_CONVERSION_CONVERTTOSPIRV_CONVERTTOSPIRVPASS_H - -#include - -namespace mlir { -class Pass; - -#define GEN_PASS_DECL_CONVERTTOSPIRVPASS -#include "mlir/Conversion/Passes.h.inc" - -} // namespace mlir - -#endif // MLIR_CONVERSION_CONVERTTOSPIRV_CONVERTTOSPIRVPASS_H diff --git a/mlir/include/mlir/Conversion/Passes.h b/mlir/include/mlir/Conversion/Passes.h index e9761c20642c0..ccd862f67c068 100644 --- a/mlir/include/mlir/Conversion/Passes.h +++ b/mlir/include/mlir/Conversion/Passes.h @@ -30,7 +30,6 @@ #include "mlir/Conversion/ControlFlowToSPIRV/ControlFlowToSPIRV.h" #include "mlir/Conversion/ControlFlowToSPIRV/ControlFlowToSPIRVPass.h" #include "mlir/Conversion/ConvertToLLVM/ToLLVMPass.h" -#include "mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h" #include "mlir/Conversion/FuncToEmitC/FuncToEmitCPass.h" #include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h" #include "mlir/Conversion/FuncToSPIRV/FuncToSPIRVPass.h" diff --git a/mlir/include/mlir/Conversion/Passes.td b/mlir/include/mlir/Conversion/Passes.td index 4cd6c17e3379c..ff79a1226c047 100644 --- a/mlir/include/mlir/Conversion/Passes.td +++ b/mlir/include/mlir/Conversion/Passes.td @@ -39,35 +39,6 @@ def ConvertToLLVMPass : Pass<"convert-to-llvm"> { ]; } -//===----------------------------------------------------------------------===// -// ToSPIRV -//===----------------------------------------------------------------------===// - -def ConvertToSPIRVPass : Pass<"convert-to-spirv"> { - let summary = "Convert to SPIR-V"; - let description = [{ - This is a generic pass to convert to SPIR-V. - }]; - let dependentDialects = [ - "spirv::SPIRVDialect", - "vector::VectorDialect", - ]; - let options = [ - Option<"runSignatureConversion", "run-signature-conversion", "bool", - /*default=*/"true", - "Run function signature conversion to convert vector types">, - Option<"runVectorUnrolling", "run-vector-unrolling", "bool", - /*default=*/"true", - "Run vector unrolling to convert vector types in function bodies">, - Option<"convertGPUModules", "convert-gpu-modules", "bool", - /*default=*/"false", - "Clone and convert GPU modules">, - Option<"nestInGPUModule", "nest-in-gpu-module", "bool", - /*default=*/"false", - "Put converted SPIR-V module inside the gpu.module instead of alongside it.">, - ]; -} - //===----------------------------------------------------------------------===// // AffineToStandard //===----------------------------------------------------------------------===// diff --git a/mlir/lib/Conversion/CMakeLists.txt b/mlir/lib/Conversion/CMakeLists.txt index a570978f03757..0bd08ec6333e6 100644 --- a/mlir/lib/Conversion/CMakeLists.txt +++ b/mlir/lib/Conversion/CMakeLists.txt @@ -19,7 +19,6 @@ add_subdirectory(ControlFlowToLLVM) add_subdirectory(ControlFlowToSCF) add_subdirectory(ControlFlowToSPIRV) add_subdirectory(ConvertToLLVM) -add_subdirectory(ConvertToSPIRV) add_subdirectory(FuncToEmitC) add_subdirectory(FuncToLLVM) add_subdirectory(FuncToSPIRV) diff --git a/mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt deleted file mode 100644 index 124a4c453e75c..0000000000000 --- a/mlir/lib/Conversion/ConvertToSPIRV/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -set(LLVM_OPTIONAL_SOURCES - ConvertToSPIRVPass.cpp -) - -add_mlir_conversion_library(MLIRConvertToSPIRVPass - ConvertToSPIRVPass.cpp - - ADDITIONAL_HEADER_DIRS - ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/ConvertToSPIRV - - DEPENDS - MLIRConversionPassIncGen - - LINK_LIBS PUBLIC - MLIRArithToSPIRV - MLIRArithTransforms - MLIRFuncToSPIRV - MLIRGPUDialect - MLIRGPUToSPIRV - MLIRIndexToSPIRV - MLIRIR - MLIRMemRefToSPIRV - MLIRPass - MLIRRewrite - MLIRSCFToSPIRV - MLIRSPIRVConversion - MLIRSPIRVDialect - MLIRSPIRVTransforms - MLIRSupport - MLIRTransforms - MLIRTransformUtils - MLIRUBToSPIRV - MLIRVectorDialect - MLIRVectorToSPIRV - MLIRVectorTransforms - ) diff --git a/mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir b/mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir index 652f447228086..81ac2a04f3362 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/argmax-kernel.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv -cse %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv -cse %s | FileCheck %s module attributes { gpu.container_module, diff --git a/mlir/test/Conversion/ConvertToSPIRV/arith.mlir b/mlir/test/Conversion/ConvertToSPIRV/arith.mlir index 6418e931f7460..d9a33a1f7b6e8 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/arith.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/arith.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s //===----------------------------------------------------------------------===// // arithmetic ops diff --git a/mlir/test/Conversion/ConvertToSPIRV/combined.mlir b/mlir/test/Conversion/ConvertToSPIRV/combined.mlir index 311174bef15ed..3039ed58463ea 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/combined.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/combined.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @combined // CHECK: %[[C0_F32:.*]] = spirv.Constant 0.000000e+00 : f32 diff --git a/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir b/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir index 7562de17c606e..5b12a656a2bf8 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules-nested.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="convert-gpu-modules=true nest-in-gpu-module=true run-signature-conversion=false run-vector-unrolling=false" %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="convert-gpu-modules=true nest-in-gpu-module=true run-signature-conversion=false run-vector-unrolling=false" %s | FileCheck %s module attributes { gpu.container_module, diff --git a/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir b/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir index 1fde6c34418fc..00bbd1c27116a 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/convert-gpu-modules.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="convert-gpu-modules=true run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="convert-gpu-modules=true run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s module attributes { gpu.container_module, diff --git a/mlir/test/Conversion/ConvertToSPIRV/gpu.mlir b/mlir/test/Conversion/ConvertToSPIRV/gpu.mlir index 84f366e5874b0..3e197c076be6a 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/gpu.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/gpu.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv -split-input-file %s | FileCheck %s module attributes { gpu.container_module, diff --git a/mlir/test/Conversion/ConvertToSPIRV/index.mlir b/mlir/test/Conversion/ConvertToSPIRV/index.mlir index f4b116849fa93..a7b892e358acb 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/index.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/index.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @basic func.func @basic(%a: index, %b: index) { diff --git a/mlir/test/Conversion/ConvertToSPIRV/memref.mlir b/mlir/test/Conversion/ConvertToSPIRV/memref.mlir index 5af8bfc842ea1..f7d17d1ad16da 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/memref.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/memref.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -cse %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -cse %s | FileCheck %s module attributes { spirv.target_env = #spirv.target_env< diff --git a/mlir/test/Conversion/ConvertToSPIRV/scf.mlir b/mlir/test/Conversion/ConvertToSPIRV/scf.mlir index 350ebcfe57b15..fab45d4742850 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/scf.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/scf.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @if_yield // CHECK: %[[VAR:.*]] = spirv.Variable : !spirv.ptr diff --git a/mlir/test/Conversion/ConvertToSPIRV/simple.mlir b/mlir/test/Conversion/ConvertToSPIRV/simple.mlir index 00556140c3018..aa4a963d1d69a 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/simple.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/simple.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @return_scalar // CHECK-SAME: %[[ARG0:.*]]: i32 diff --git a/mlir/test/Conversion/ConvertToSPIRV/ub.mlir b/mlir/test/Conversion/ConvertToSPIRV/ub.mlir index f34ca01c94f00..e8ffcd4237ed2 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/ub.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/ub.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @ub // CHECK: %[[UNDEF:.*]] = spirv.Undef : i32 diff --git a/mlir/test/Conversion/ConvertToSPIRV/vector.mlir b/mlir/test/Conversion/ConvertToSPIRV/vector.mlir index e369eadca5730..510f7a2d94c9e 100644 --- a/mlir/test/Conversion/ConvertToSPIRV/vector.mlir +++ b/mlir/test/Conversion/ConvertToSPIRV/vector.mlir @@ -1,4 +1,4 @@ -// RUN: mlir-opt -convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s +// RUN: mlir-opt -test-convert-to-spirv="run-signature-conversion=false run-vector-unrolling=false" -split-input-file %s | FileCheck %s // CHECK-LABEL: @extract // CHECK-SAME: %[[ARG:.+]]: vector<2xf32> diff --git a/mlir/test/lib/Pass/CMakeLists.txt b/mlir/test/lib/Pass/CMakeLists.txt index 6698af86b8ae6..95e8e8d743f68 100644 --- a/mlir/test/lib/Pass/CMakeLists.txt +++ b/mlir/test/lib/Pass/CMakeLists.txt @@ -1,6 +1,7 @@ get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) # Exclude tests from libMLIR.so add_mlir_library(MLIRTestPass + TestConvertToSPIRVPass.cpp TestDynamicPipeline.cpp TestPassManager.cpp TestSPIRVCPURunnerPipeline.cpp diff --git a/mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp b/mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp similarity index 71% rename from mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp rename to mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp index 4481c0a497354..3c99d3c5b60ce 100644 --- a/mlir/lib/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.cpp +++ b/mlir/test/lib/Pass/TestConvertToSPIRVPass.cpp @@ -6,7 +6,6 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h" #include "mlir/Conversion/ArithToSPIRV/ArithToSPIRV.h" #include "mlir/Conversion/FuncToSPIRV/FuncToSPIRV.h" #include "mlir/Conversion/GPUToSPIRV/GPUToSPIRV.h" @@ -24,16 +23,12 @@ #include "mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h" #include "mlir/IR/PatternMatch.h" #include "mlir/Pass/Pass.h" +#include "mlir/Pass/PassOptions.h" #include "mlir/Rewrite/FrozenRewritePatternSet.h" #include "mlir/Transforms/DialectConversion.h" #include -#define DEBUG_TYPE "convert-to-spirv" - -namespace mlir { -#define GEN_PASS_DEF_CONVERTTOSPIRVPASS -#include "mlir/Conversion/Passes.h.inc" -} // namespace mlir +#define DEBUG_TYPE "test-convert-to-spirv" using namespace mlir; @@ -69,9 +64,44 @@ void populateConvertToSPIRVPatterns(const SPIRVTypeConverter &typeConverter, } /// A pass to perform the SPIR-V conversion. -struct ConvertToSPIRVPass final - : impl::ConvertToSPIRVPassBase { - using ConvertToSPIRVPassBase::ConvertToSPIRVPassBase; +struct TestConvertToSPIRVPass final + : PassWrapper> { + Option runSignatureConversion{ + *this, "run-signature-conversion", + llvm::cl::desc( + "Run function signature conversion to convert vector types"), + llvm::cl::init(true)}; + Option runVectorUnrolling{ + *this, "run-vector-unrolling", + llvm::cl::desc( + "Run vector unrolling to convert vector types in function bodies"), + llvm::cl::init(true)}; + Option convertGPUModules{ + *this, "convert-gpu-modules", + llvm::cl::desc("Clone and convert GPU modules"), llvm::cl::init(false)}; + Option nestInGPUModule{ + *this, "nest-in-gpu-module", + llvm::cl::desc("Put converted SPIR-V module inside the gpu.module " + "instead of alongside it."), + llvm::cl::init(false)}; + + MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestConvertToSPIRVPass) + + StringRef getArgument() const final { return "test-convert-to-spirv"; } + StringRef getDescription() const final { + return "Conversion to SPIR-V pass only used for internal tests."; + } + void getDependentDialects(DialectRegistry ®istry) const override { + registry.insert(); + registry.insert(); + } + + TestConvertToSPIRVPass() = default; + TestConvertToSPIRVPass(bool convertGPUModules, bool nestInGPUModule) { + this->convertGPUModules = convertGPUModules; + this->nestInGPUModule = nestInGPUModule; + }; + TestConvertToSPIRVPass(const TestConvertToSPIRVPass &) {} void runOnOperation() override { Operation *op = getOperation(); @@ -132,3 +162,14 @@ struct ConvertToSPIRVPass final }; } // namespace + +namespace mlir::test { +void registerTestConvertToSPIRVPass() { + PassRegistration(); +} +std::unique_ptr createTestConvertToSPIRVPass(bool convertGPUModules, + bool nestInGPUModule) { + return std::make_unique(convertGPUModules, + nestInGPUModule); +} +} // namespace mlir::test diff --git a/mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp b/mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp index e4cbbeb1f99bc..3b011d2b2b0ac 100644 --- a/mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp +++ b/mlir/test/lib/Pass/TestVulkanRunnerPipeline.cpp @@ -10,7 +10,6 @@ // //===----------------------------------------------------------------------===// -#include "mlir/Conversion/ConvertToSPIRV/ConvertToSPIRVPass.h" #include "mlir/Conversion/GPUCommon/GPUCommonPass.h" #include "mlir/Conversion/GPUToSPIRV/GPUToSPIRVPass.h" #include "mlir/Conversion/MemRefToLLVM/MemRefToLLVM.h" @@ -26,6 +25,12 @@ using namespace mlir; +// Defined in the test directory, no public header. +namespace mlir::test { +std::unique_ptr createTestConvertToSPIRVPass(bool convertGPUModules, + bool nestInGPUModule); +} + namespace { struct VulkanRunnerPipelineOptions @@ -47,10 +52,8 @@ void buildTestVulkanRunnerPipeline(OpPassManager &passManager, "SPV_KHR_storage_buffer_storage_class"); passManager.addPass(createGpuSPIRVAttachTarget(attachTargetOptions)); - ConvertToSPIRVPassOptions convertToSPIRVOptions{}; - convertToSPIRVOptions.convertGPUModules = true; - convertToSPIRVOptions.nestInGPUModule = true; - passManager.addPass(createConvertToSPIRVPass(convertToSPIRVOptions)); + passManager.addPass(test::createTestConvertToSPIRVPass( + /*convertGPUModules=*/true, /*nestInGPUModule=*/true)); OpPassManager &spirvModulePM = passManager.nest().nest(); diff --git a/mlir/tools/mlir-opt/mlir-opt.cpp b/mlir/tools/mlir-opt/mlir-opt.cpp index 960f7037a1b61..74007d01347ae 100644 --- a/mlir/tools/mlir-opt/mlir-opt.cpp +++ b/mlir/tools/mlir-opt/mlir-opt.cpp @@ -87,6 +87,7 @@ void registerTestComposeSubView(); void registerTestCompositePass(); void registerTestConstantFold(); void registerTestControlFlowSink(); +void registerTestConvertToSPIRVPass(); void registerTestDataLayoutPropagation(); void registerTestDataLayoutQuery(); void registerTestDeadCodeAnalysisPass(); @@ -226,6 +227,7 @@ void registerTestPasses() { mlir::test::registerTestCompositePass(); mlir::test::registerTestConstantFold(); mlir::test::registerTestControlFlowSink(); + mlir::test::registerTestConvertToSPIRVPass(); mlir::test::registerTestDataLayoutPropagation(); mlir::test::registerTestDataLayoutQuery(); mlir::test::registerTestDeadCodeAnalysisPass();