diff --git a/mlir/lib/Dialect/GPU/Transforms/ModuleToBinary.cpp b/mlir/lib/Dialect/GPU/Transforms/ModuleToBinary.cpp index 1e7596e8cc4af1..adae3bef763ff7 100644 --- a/mlir/lib/Dialect/GPU/Transforms/ModuleToBinary.cpp +++ b/mlir/lib/Dialect/GPU/Transforms/ModuleToBinary.cpp @@ -38,25 +38,10 @@ class GpuModuleToBinaryPass : public impl::GpuModuleToBinaryPassBase { public: using Base::Base; - void getDependentDialects(DialectRegistry ®istry) const override; void runOnOperation() final; }; } // namespace -void GpuModuleToBinaryPass::getDependentDialects( - DialectRegistry ®istry) const { - // Register all GPU related translations. - registry.insert(); - registry.insert(); -#if LLVM_HAS_NVPTX_TARGET - registry.insert(); -#endif -#if MLIR_ENABLE_ROCM_CONVERSIONS - registry.insert(); -#endif - registry.insert(); -} - void GpuModuleToBinaryPass::runOnOperation() { RewritePatternSet patterns(&getContext()); auto targetFormat = diff --git a/mlir/lib/Target/LLVM/NVVM/Target.cpp b/mlir/lib/Target/LLVM/NVVM/Target.cpp index acb903aa37caf9..e608d26e8d2ece 100644 --- a/mlir/lib/Target/LLVM/NVVM/Target.cpp +++ b/mlir/lib/Target/LLVM/NVVM/Target.cpp @@ -157,7 +157,6 @@ SerializeGPUModuleBase::loadBitcodeFiles(llvm::Module &module) { return std::move(bcFiles); } -#if LLVM_HAS_NVPTX_TARGET namespace { class NVPTXSerializer : public SerializeGPUModuleBase { public: @@ -532,6 +531,12 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) { if (targetOptions.getCompilationTarget() == gpu::CompilationTarget::Offload) return SerializeGPUModuleBase::moduleToObject(llvmModule); +#if !LLVM_HAS_NVPTX_TARGET + getOperation()->emitError( + "The `NVPTX` target was not built. Please enable it when building LLVM."); + return std::nullopt; +#endif // LLVM_HAS_NVPTX_TARGET + // Emit PTX code. std::optional targetMachine = getOrCreateTargetMachine(); @@ -569,7 +574,6 @@ NVPTXSerializer::moduleToObject(llvm::Module &llvmModule) { return compileToBinary(*serializedISA); #endif // MLIR_ENABLE_NVPTXCOMPILER } -#endif // LLVM_HAS_NVPTX_TARGET std::optional> NVVMTargetAttrImpl::serializeToObject(Attribute attribute, Operation *module, @@ -581,15 +585,9 @@ NVVMTargetAttrImpl::serializeToObject(Attribute attribute, Operation *module, module->emitError("Module must be a GPU module."); return std::nullopt; } -#if LLVM_HAS_NVPTX_TARGET NVPTXSerializer serializer(*module, cast(attribute), options); serializer.init(); return serializer.run(); -#else - module->emitError( - "The `NVPTX` target was not built. Please enable it when building LLVM."); - return std::nullopt; -#endif // LLVM_HAS_NVPTX_TARGET } Attribute