[llvm] [AMDGPU] Fold redundant inf/nan checks into frexp instructions (PR #214936)

via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 6 19:18:08 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

* 137474 tests passed
* 2805 tests skipped

All executed tests passed, but another part of the build **failed**. Click on a failure below to see the details.

<details>
<summary>[code=4294967295] bin/mlir-capi-translation-test.exe</summary>

```
FAILED: [code=4294967295] bin/mlir-capi-translation-test.exe
C:\Windows\system32\cmd.exe /C "cd . && C:\BuildTools\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe -E vs_link_exe --msvc-ver=1944 --intdir=tools\mlir\test\CAPI\CMakeFiles\mlir-capi-translation-test.dir --rc="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\rc.exe" --mt="C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\mt.exe" --manifests  -- C:\clang\clang-msvc\bin\lld-link.exe /nologo @CMakeFiles\mlir-capi-translation-test.rsp  /out:bin\mlir-capi-translation-test.exe /implib:lib\mlir-capi-translation-test.lib /pdb:bin\mlir-capi-translation-test.pdb /version:0.0 /MANIFEST:NO /Brepro /INCREMENTAL:NO /subsystem:console  /STACK:10000000 && cd ."
LINK: command "C:\clang\clang-msvc\bin\lld-link.exe /nologo @CMakeFiles\mlir-capi-translation-test.rsp /out:bin\mlir-capi-translation-test.exe /implib:lib\mlir-capi-translation-test.lib /pdb:bin\mlir-capi-translation-test.pdb /version:0.0 /MANIFEST:NO /Brepro /INCREMENTAL:NO /subsystem:console /STACK:10000000" failed (exit code 1) with the following output:
lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::FuncDialect, void>::id
>>> referenced by MLIRRegisterAllDialects.lib(RegisterAllDialects.cpp.obj):(public: void __cdecl mlir::DialectRegistry::insert<class mlir::func::FuncDialect, class mlir::gpu::GPUDialect, class mlir::index::IndexDialect, class mlir::irdl::IRDLDialect, class mlir::linalg::LinalgDialect, class mlir::LLVM::LLVMDialect, class mlir::math::MathDialect, class mlir::memref::MemRefDialect, class mlir::shard::ShardDialect, class mlir::ml_program::MLProgramDialect, class mlir::mpi::MPIDialect, class mlir::nvgpu::NVGPUDialect, class mlir::NVVM::NVVMDialect, class mlir::omp::OpenMPDialect, class mlir::pdl::PDLDialect, class mlir::pdl_interp::PDLInterpDialect, class mlir::ptr::PtrDialect, class mlir::quant::QuantDialect, class mlir::ROCDL::ROCDLDialect, class mlir::scf::SCFDialect, class mlir::shape::ShapeDialect, class mlir::smt::SMTDialect, class mlir::sparse_tensor::SparseTensorDialect, class mlir::spirv::SPIRVDialect, class mlir::tensor::TensorDialect, class mlir::tosa::TosaDialect, class mlir::transform::TransformDialect, class mlir::ub::UBDialect, class mlir::vector::VectorDialect, class mlir::wasmssa::WasmSSADialect, class mlir::x86::X86Dialect, class mlir::xegpu::XeGPUDialect, class mlir::xevm::XeVMDialect>(void))
>>> referenced by MLIRRegisterAllDialects.lib(RegisterAllDialects.cpp.obj):(private: virtual class mlir::Dialect * __cdecl std::_Func_impl_no_alloc<class `public: void __cdecl mlir::DialectRegistry::insert<class mlir::func::FuncDialect>(void)'::`1'::<lambda_1>, class mlir::Dialect *, class mlir::MLIRContext *>::_Do_call(class mlir::MLIRContext *&&))
>>> referenced by MLIROpenMPDialect.lib(OpenMPDialect.cpp.obj):(public: void __cdecl mlir::MLIRContext::loadDialect<class mlir::LLVM::LLVMDialect, class mlir::func::FuncDialect>(void))
>>> referenced 33 more times

lld-link: error: undefined symbol: private: __cdecl mlir::func::FuncDialect::FuncDialect(class mlir::MLIRContext *)
>>> referenced by MLIRRegisterAllDialects.lib(RegisterAllDialects.cpp.obj):(private: static class std::unique_ptr<class mlir::Dialect, struct std::default_delete<class mlir::Dialect>> __cdecl llvm::function_ref<class std::unique_ptr<class mlir::Dialect, struct std::default_delete<class mlir::Dialect>> __cdecl(void)>::callback_fn<class `public: class mlir::func::FuncDialect * __cdecl mlir::MLIRContext::getOrLoadDialect<class mlir::func::FuncDialect>(void)'::`1'::<lambda_1>>(__int64))
>>> referenced by MLIROpenMPDialect.lib(OpenMPDialect.cpp.obj)
>>> referenced by MLIRSCFTransformOps.lib(SCFTransformOps.cpp.obj)

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::ReturnOp, void>::id
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: static bool __cdecl mlir::Op<class mlir::func::ReturnOp, class mlir::OpTrait::ZeroRegions, class mlir::OpTrait::ZeroResults, class mlir::OpTrait::ZeroSuccessors, class mlir::OpTrait::VariadicOperands, class mlir::OpTrait::HasParent<class mlir::func::FuncOp>::Impl, class mlir::OpTrait::OpInvariants, struct mlir::ConditionallySpeculatable::Trait, struct mlir::OpTrait::AlwaysSpeculatableImplTrait, struct mlir::MemoryEffectOpInterface::Trait, struct mlir::OpTrait::MemRefsNormalizable, struct mlir::RegionBranchTerminatorOpInterface::Trait, struct mlir::OpTrait::ReturnLike, class mlir::OpTrait::IsTerminator>::classof(class mlir::Operation *))
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(private: static <auto> __cdecl `void __cdecl mlir::bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(class mlir::DialectRegistry &)'::`1'::<lambda_0>::__invoke(class mlir::MLIRContext *, class mlir::func::FuncDialect *))
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj)
>>> referenced 2 more times

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::CallOp, void>::id
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(private: static <auto> __cdecl `void __cdecl mlir::bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(class mlir::DialectRegistry &)'::`1'::<lambda_0>::__invoke(class mlir::MLIRContext *, class mlir::func::FuncDialect *))
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: static bool __cdecl mlir::Op<class mlir::func::CallOp, class mlir::OpTrait::ZeroRegions, class mlir::OpTrait::VariadicResults, class mlir::OpTrait::ZeroSuccessors, class mlir::OpTrait::VariadicOperands, class mlir::OpTrait::OpInvariants, struct mlir::BytecodeOpInterface::Trait, struct mlir::ArgAndResultAttrsOpInterface::Trait, struct mlir::CallOpInterface::Trait, struct mlir::OpTrait::MemRefsNormalizable, struct mlir::SymbolUserOpInterface::Trait>::classof(class mlir::Operation *))
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj)
>>> referenced 1 more times

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::FuncOp, void>::id
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(private: static <auto> __cdecl `void __cdecl mlir::bufferization::func_ext::registerBufferizableOpInterfaceExternalModels(class mlir::DialectRegistry &)'::`1'::<lambda_0>::__invoke(class mlir::MLIRContext *, class mlir::func::FuncDialect *))
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: static bool __cdecl mlir::Op<class mlir::func::FuncOp, class mlir::OpTrait::OneRegion, class mlir::OpTrait::ZeroResults, class mlir::OpTrait::ZeroSuccessors, class mlir::OpTrait::ZeroOperands, class mlir::OpTrait::OpInvariants, struct mlir::BytecodeOpInterface::Trait, class mlir::OpTrait::AffineScope, class mlir::OpTrait::AutomaticAllocationScope, class mlir::OpTrait::SymbolName, class mlir::OpTrait::SymbolVisibility, struct mlir::SymbolOpInterface::Trait, struct mlir::ArgAndResultAttrsOpInterface::Trait, struct mlir::CallableOpInterface::Trait, struct mlir::FunctionOpInterface::Trait, class mlir::OpTrait::IsIsolatedFromAbove, struct mlir::OpAsmOpInterface::Trait>::classof(class mlir::Operation *))
>>> referenced by MLIROpenMPDialect.lib(OpenMPDialect.cpp.obj):(private: void __cdecl mlir::omp::OpenMPDialect::initialize(void))
>>> referenced 8 more times

lld-link: error: undefined symbol: public: class mlir::FunctionType __cdecl mlir::func::FuncOp::getFunctionType(void)
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: struct llvm::LogicalResult __cdecl mlir::bufferization::func_ext::CallOpInterface::bufferize(class mlir::Operation *, class mlir::RewriterBase &, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState &) const)
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: class llvm::FailureOr<class mlir::bufferization::BufferLikeType> __cdecl mlir::bufferization::func_ext::CallOpInterface::getBufferType(class mlir::Operation *, class mlir::Value, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState const &, class llvm::SmallVector<class mlir::Value, 6> &) const)
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: struct llvm::LogicalResult __cdecl mlir::bufferization::func_ext::FuncOpInterface::bufferize(class mlir::Operation *, class mlir::RewriterBase &, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState &) const)
>>> referenced 86 more times

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<struct mlir::func::detail::CallOpGenericAdaptorBase::Properties, void>::id
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: struct llvm::LogicalResult __cdecl mlir::bufferization::func_ext::CallOpInterface::bufferize(class mlir::Operation *, class mlir::RewriterBase &, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::CallOpConversion::matchAndRewrite(class mlir::func::CallOp, class func::CallOp::CallOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::CallOpConversion::matchAndRewrite(class mlir::func::CallOp, class func::CallOp::CallOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced 17 more times

lld-link: error: undefined symbol: public: static class mlir::func::CallOp __cdecl mlir::func::CallOp::create(class mlir::OpBuilder &, class mlir::Location, class mlir::TypeRange, class mlir::ValueRange, struct mlir::func::detail::CallOpGenericAdaptorBase::Properties const &, class llvm::ArrayRef<class mlir::NamedAttribute>)
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: struct llvm::LogicalResult __cdecl mlir::bufferization::func_ext::CallOpInterface::bufferize(class mlir::Operation *, class mlir::RewriterBase &, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState &) const)

lld-link: error: undefined symbol: public: class mlir::MutableOperandRange __cdecl mlir::func::ReturnOp::getOperandsMutable(void)
>>> referenced by MLIRBufferizationTransforms.lib(FuncBufferizableOpInterfaceImpl.cpp.obj):(public: struct llvm::LogicalResult __cdecl mlir::bufferization::func_ext::FuncOpInterface::bufferize(class mlir::Operation *, class mlir::RewriterBase &, struct mlir::bufferization::BufferizationOptions const &, class mlir::bufferization::BufferizationState &) const)
>>> referenced by MLIRBufferizationTransforms.lib(DropEquivalentBufferResults.cpp.obj):(struct llvm::LogicalResult __cdecl mlir::bufferization::dropEquivalentBufferResults(class mlir::ModuleOp, struct mlir::bufferization::DropBufferResultsOpts))

lld-link: error: undefined symbol: public: __cdecl mlir::func::detail::CallOpGenericAdaptorBase::CallOpGenericAdaptorBase(class mlir::func::CallOp)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::CallOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::CallOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::Value>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::CallOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced 1 more times

lld-link: error: undefined symbol: public: struct std::pair<unsigned int, unsigned int> __cdecl mlir::func::detail::CallOpGenericAdaptorBase::getODSOperandIndexAndLength(unsigned int, unsigned int)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::CallOpConversion::matchAndRewrite(class mlir::func::CallOp, class func::CallOp::CallOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::CallOpConversion::matchAndRewrite(class mlir::func::CallOp, class func::CallOp::CallOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(protected: static struct llvm::LogicalResult __cdecl mlir::ConversionPattern::dispatchTo1To1<class mlir::OpConversionPattern<class mlir::func::CallOp>, class mlir::func::CallOp>(class mlir::OpConversionPattern<class mlir::func::CallOp> const &, class mlir::func::CallOp, class mlir::func::CallOpGenericAdaptor<class llvm::ArrayRef<class mlir::ValueRange>>, class mlir::ConversionPatternRewriter &))
>>> referenced 5 more times

lld-link: error: undefined symbol: public: __cdecl mlir::func::detail::FuncOpGenericAdaptorBase::FuncOpGenericAdaptorBase(class mlir::func::FuncOp)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::FuncOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::FuncOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::Value>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::FuncOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced 1 more times

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<struct mlir::func::detail::FuncOpGenericAdaptorBase::Properties, void>::id
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::FuncOpConversion::matchAndRewrite(class mlir::func::FuncOp, class func::FuncOp::FuncOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::FuncOpConversion::matchAndRewrite(class mlir::func::FuncOp, class func::FuncOp::FuncOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::FuncOpConversion::matchAndRewrite(class mlir::func::FuncOp, class func::FuncOp::FuncOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced 37 more times

lld-link: error: undefined symbol: public: __cdecl mlir::func::detail::ReturnOpGenericAdaptorBase::ReturnOpGenericAdaptorBase(class mlir::func::ReturnOp)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::ReturnOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::OpConversionPattern<class mlir::func::ReturnOp>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::Value>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::ReturnOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced 1 more times

lld-link: error: undefined symbol: public: struct std::pair<unsigned int, unsigned int> __cdecl mlir::func::detail::ReturnOpGenericAdaptorBase::getODSOperandIndexAndLength(unsigned int, unsigned int)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::ReturnOpConversion::matchAndRewrite(class mlir::func::ReturnOp, class func::ReturnOp::ReturnOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::ReturnOpConversion::matchAndRewrite(class mlir::func::ReturnOp, class func::ReturnOp::ReturnOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToEmitC.lib(FuncToEmitC.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::ReturnOpConversion::matchAndRewrite(class mlir::func::ReturnOp, class func::ReturnOp::ReturnOpAdaptor, class func::ConversionPatternRewriter &) const)
>>> referenced 9 more times

lld-link: error: undefined symbol: public: __cdecl mlir::func::detail::CallIndirectOpGenericAdaptorBase::CallIndirectOpGenericAdaptorBase(class mlir::func::CallIndirectOp)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::CallIndirectOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::CallIndirectOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::Value>, class mlir::ConversionPatternRewriter &) const)

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::CallIndirectOp, void>::id
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: static bool __cdecl mlir::Op<class mlir::func::CallIndirectOp, class mlir::OpTrait::ZeroRegions, class mlir::OpTrait::VariadicResults, class mlir::OpTrait::ZeroSuccessors, class mlir::OpTrait::AtLeastNOperands<1>::Impl, class mlir::OpTrait::OpInvariants, struct mlir::BytecodeOpInterface::Trait, struct mlir::ArgAndResultAttrsOpInterface::Trait, struct mlir::CallOpInterface::Trait>::classof(class mlir::Operation *))
>>> referenced by MLIRTosaToSPIRVTosa.lib(TosaToSPIRVTosaPass.cpp.obj)
>>> referenced by MLIRSparseTensorTransforms.lib(StageSparseOperations.cpp.obj)

lld-link: error: undefined symbol: public: __cdecl mlir::func::detail::ConstantOpGenericAdaptorBase::ConstantOpGenericAdaptorBase(class mlir::func::ConstantOp)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::ConstantOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::ValueRange>, class mlir::ConversionPatternRewriter &) const)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl mlir::ConvertOpToLLVMPattern<class mlir::func::ConstantOp, 0>::matchAndRewrite(class mlir::Operation *, class llvm::ArrayRef<class mlir::Value>, class mlir::ConversionPatternRewriter &) const)

lld-link: error: undefined symbol: public: class llvm::StringRef __cdecl mlir::func::ConstantOp::getValue(void)
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: virtual struct llvm::LogicalResult __cdecl `anonymous namespace'::ConstantOpLowering::matchAndRewrite(class mlir::func::ConstantOp, class func::ConstantOp::ConstantOpAdaptor, class func::ConversionPatternRewriter &) const)

lld-link: error: undefined symbol: private: static class mlir::SelfOwningTypeID mlir::detail::TypeIDResolver<class mlir::func::ConstantOp, void>::id
>>> referenced by MLIRFuncToLLVM.lib(FuncToLLVM.cpp.obj):(public: static bool __cdecl mlir::Op<class mlir::func::ConstantOp, class mlir::OpTrait::ZeroRegions, class mlir::OpTrait::OneResult, class mlir::OpTrait::OneTypedResult<class mlir::Type>::Impl, class mlir::OpTrait::ZeroSuccessors, class mlir::OpTrait::ZeroOperands, class mlir::OpTrait::OpInvariants, struct mlir::BytecodeOpInterface::Trait, class mlir::OpTrait::ConstantLike, struct mlir::ConditionallySpeculatable::Trait, struct mlir::OpTrait::AlwaysSpeculatableImplTrait, struct mlir::MemoryEffectOpInterface::Trait, struct mlir::SymbolUserOpInterface::Trait, struct mlir::OpAsmOpInterface::Trait>::classof(class mlir::Operation *))
>>> referenced by MLIRLinalgUtils.lib(Utils.cpp.obj)
>>> referenced by MLIRLinalgTransforms.lib(Vectorization.cpp.obj)

lld-link: error: too many errors emitted, stopping now (use /errorlimit:0 to see all errors)
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/214936


More information about the llvm-commits mailing list