Skip to content

Conversation

andfau-amd
Copy link
Contributor

Adds a new mlir-opt test-only pass, -test-spirv-cpu-runner-pipeline, which runs the set of MLIR passes needed for the mlir-spirv-cpu-runner, and removes them from the runner. The tests are changed to invoke mlir-opt with this flag before running the runner. The eventual goal is to move all host/device code generation steps out of the runner, like with some of the other runners.

@llvmbot llvmbot added mlir:core MLIR Core Infrastructure mlir:spirv mlir labels Oct 8, 2024
@llvmbot
Copy link
Member

llvmbot commented Oct 8, 2024

@llvm/pr-subscribers-mlir-core

@llvm/pr-subscribers-mlir-spirv

Author: Andrea Faulds (andfau-amd)

Changes

Adds a new mlir-opt test-only pass, -test-spirv-cpu-runner-pipeline, which runs the set of MLIR passes needed for the mlir-spirv-cpu-runner, and removes them from the runner. The tests are changed to invoke mlir-opt with this flag before running the runner. The eventual goal is to move all host/device code generation steps out of the runner, like with some of the other runners.


Full diff: https://github.com/llvm/llvm-project/pull/111575.diff

6 Files Affected:

  • (modified) mlir/test/lib/Pass/CMakeLists.txt (+1)
  • (added) mlir/test/lib/Pass/TestSPIRVCPURunnerPipeline.cpp (+87)
  • (modified) mlir/test/mlir-spirv-cpu-runner/double.mlir (+2-1)
  • (modified) mlir/test/mlir-spirv-cpu-runner/simple_add.mlir (+2-1)
  • (modified) mlir/tools/mlir-opt/mlir-opt.cpp (+2)
  • (modified) mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp (-24)
diff --git a/mlir/test/lib/Pass/CMakeLists.txt b/mlir/test/lib/Pass/CMakeLists.txt
index dd90c228cdaf5f..9f79944ff89684 100644
--- a/mlir/test/lib/Pass/CMakeLists.txt
+++ b/mlir/test/lib/Pass/CMakeLists.txt
@@ -2,6 +2,7 @@
 add_mlir_library(MLIRTestPass
   TestDynamicPipeline.cpp
   TestPassManager.cpp
+  TestSPIRVCPURunnerPipeline.cpp
 
   EXCLUDE_FROM_LIBMLIR
 
diff --git a/mlir/test/lib/Pass/TestSPIRVCPURunnerPipeline.cpp b/mlir/test/lib/Pass/TestSPIRVCPURunnerPipeline.cpp
new file mode 100644
index 00000000000000..514b6fa6e3fd2b
--- /dev/null
+++ b/mlir/test/lib/Pass/TestSPIRVCPURunnerPipeline.cpp
@@ -0,0 +1,87 @@
+//===------------------ TestSPIRVCPURunnerPipeline.cpp --------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements a pass for use by mlir-spirv-cpu-runner tests.
+//
+//===----------------------------------------------------------------------===//
+
+#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h"
+#include "mlir/Conversion/GPUToSPIRV/GPUToSPIRVPass.h"
+#include "mlir/Conversion/SPIRVToLLVM/SPIRVToLLVMPass.h"
+#include "mlir/Dialect/Arith/IR/Arith.h"
+#include "mlir/Dialect/DLTI/DLTI.h"
+#include "mlir/Dialect/Func/IR/FuncOps.h"
+#include "mlir/Dialect/GPU/IR/GPUDialect.h"
+#include "mlir/Dialect/GPU/Transforms/Passes.h"
+#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
+#include "mlir/Dialect/MemRef/IR/MemRef.h"
+#include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
+#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
+#include "mlir/Dialect/SPIRV/Transforms/Passes.h"
+#include "mlir/ExecutionEngine/JitRunner.h"
+#include "mlir/ExecutionEngine/OptUtils.h"
+#include "mlir/IR/BuiltinOps.h"
+#include "mlir/Pass/Pass.h"
+#include "mlir/Pass/PassManager.h"
+
+using namespace mlir;
+
+namespace {
+
+class TestSPIRVCPURunnerPipelinePass
+    : public PassWrapper<TestSPIRVCPURunnerPipelinePass,
+                         OperationPass<ModuleOp>> {
+public:
+  MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(TestSPIRVCPURunnerPipelinePass)
+
+  StringRef getArgument() const final {
+    return "test-spirv-cpu-runner-pipeline";
+  }
+  StringRef getDescription() const final {
+    return "Runs a series of passes for lowering SPIR-V-dialect MLIR to "
+           "LLVM-dialect MLIR intended for mlir-spirv-cpu-runner.";
+  }
+  void getDependentDialects(DialectRegistry &registry) const override {
+    registry.insert<mlir::arith::ArithDialect, mlir::LLVM::LLVMDialect,
+                    mlir::gpu::GPUDialect, mlir::spirv::SPIRVDialect,
+                    mlir::func::FuncDialect, mlir::memref::MemRefDialect,
+                    mlir::DLTIDialect>();
+  }
+
+  TestSPIRVCPURunnerPipelinePass() = default;
+  TestSPIRVCPURunnerPipelinePass(const TestSPIRVCPURunnerPipelinePass &) {}
+
+  void runOnOperation() override {
+    ModuleOp module = getOperation();
+
+    PassManager passManager(module->getContext(),
+                            module->getName().getStringRef());
+    if (failed(applyPassManagerCLOptions(passManager)))
+      return signalPassFailure();
+    passManager.addPass(createGpuKernelOutliningPass());
+    passManager.addPass(createConvertGPUToSPIRVPass(/*mapMemorySpace=*/true));
+
+    OpPassManager &nestedPM = passManager.nest<spirv::ModuleOp>();
+    nestedPM.addPass(spirv::createSPIRVLowerABIAttributesPass());
+    nestedPM.addPass(spirv::createSPIRVUpdateVCEPass());
+    passManager.addPass(createLowerHostCodeToLLVMPass());
+    passManager.addPass(createConvertSPIRVToLLVMPass());
+
+    if (failed(runPipeline(passManager, module)))
+      signalPassFailure();
+  }
+};
+} // namespace
+
+namespace mlir {
+namespace test {
+void registerTestSPIRVCPURunnerPipelinePass() {
+  PassRegistration<TestSPIRVCPURunnerPipelinePass>();
+}
+} // namespace test
+} // namespace mlir
diff --git a/mlir/test/mlir-spirv-cpu-runner/double.mlir b/mlir/test/mlir-spirv-cpu-runner/double.mlir
index cd551ffb1bd062..35557ba1e94c00 100644
--- a/mlir/test/mlir-spirv-cpu-runner/double.mlir
+++ b/mlir/test/mlir-spirv-cpu-runner/double.mlir
@@ -1,4 +1,5 @@
-// RUN: mlir-spirv-cpu-runner %s -e main --entry-point-result=void --shared-libs=%mlir_runner_utils,%mlir_test_spirv_cpu_runner_c_wrappers \
+// RUN: mlir-opt %s -test-spirv-cpu-runner-pipeline \
+// RUN: | mlir-spirv-cpu-runner - -e main --entry-point-result=void --shared-libs=%mlir_runner_utils,%mlir_test_spirv_cpu_runner_c_wrappers \
 // RUN: | FileCheck %s
 
 // CHECK: [8,  8,  8,  8,  8,  8]
diff --git a/mlir/test/mlir-spirv-cpu-runner/simple_add.mlir b/mlir/test/mlir-spirv-cpu-runner/simple_add.mlir
index 119e973e45e4a7..75675a69a67583 100644
--- a/mlir/test/mlir-spirv-cpu-runner/simple_add.mlir
+++ b/mlir/test/mlir-spirv-cpu-runner/simple_add.mlir
@@ -1,4 +1,5 @@
-// RUN: mlir-spirv-cpu-runner %s -e main --entry-point-result=void --shared-libs=%mlir_runner_utils,%mlir_test_spirv_cpu_runner_c_wrappers \
+// RUN: mlir-opt %s -test-spirv-cpu-runner-pipeline \
+// RUN: | mlir-spirv-cpu-runner - -e main --entry-point-result=void --shared-libs=%mlir_runner_utils,%mlir_test_spirv_cpu_runner_c_wrappers \
 // RUN: | FileCheck %s
 
 // CHECK: data =
diff --git a/mlir/tools/mlir-opt/mlir-opt.cpp b/mlir/tools/mlir-opt/mlir-opt.cpp
index 36b142484bb04a..6b639829aacd2c 100644
--- a/mlir/tools/mlir-opt/mlir-opt.cpp
+++ b/mlir/tools/mlir-opt/mlir-opt.cpp
@@ -142,6 +142,7 @@ void registerTestSCFWhileOpBuilderPass();
 void registerTestSCFWrapInZeroTripCheckPasses();
 void registerTestShapeMappingPass();
 void registerTestSliceAnalysisPass();
+void registerTestSPIRVCPURunnerPipelinePass();
 void registerTestSPIRVFuncSignatureConversion();
 void registerTestSPIRVVectorUnrolling();
 void registerTestTensorCopyInsertionPass();
@@ -278,6 +279,7 @@ void registerTestPasses() {
   mlir::test::registerTestSCFWrapInZeroTripCheckPasses();
   mlir::test::registerTestShapeMappingPass();
   mlir::test::registerTestSliceAnalysisPass();
+  mlir::test::registerTestSPIRVCPURunnerPipelinePass();
   mlir::test::registerTestSPIRVFuncSignatureConversion();
   mlir::test::registerTestSPIRVVectorUnrolling();
   mlir::test::registerTestTensorCopyInsertionPass();
diff --git a/mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp b/mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp
index 7e0b51cac80621..22ad1024db4a0b 100644
--- a/mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp
+++ b/mlir/tools/mlir-spirv-cpu-runner/mlir-spirv-cpu-runner.cpp
@@ -12,18 +12,12 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVMPass.h"
-#include "mlir/Conversion/GPUToSPIRV/GPUToSPIRVPass.h"
-#include "mlir/Conversion/SPIRVToLLVM/SPIRVToLLVMPass.h"
 #include "mlir/Dialect/Arith/IR/Arith.h"
 #include "mlir/Dialect/Func/IR/FuncOps.h"
 #include "mlir/Dialect/GPU/IR/GPUDialect.h"
-#include "mlir/Dialect/GPU/Transforms/Passes.h"
 #include "mlir/Dialect/LLVMIR/LLVMDialect.h"
 #include "mlir/Dialect/MemRef/IR/MemRef.h"
 #include "mlir/Dialect/SPIRV/IR/SPIRVDialect.h"
-#include "mlir/Dialect/SPIRV/IR/SPIRVOps.h"
-#include "mlir/Dialect/SPIRV/Transforms/Passes.h"
 #include "mlir/ExecutionEngine/JitRunner.h"
 #include "mlir/ExecutionEngine/OptUtils.h"
 #include "mlir/Pass/Pass.h"
@@ -75,23 +69,6 @@ convertMLIRModule(Operation *op, llvm::LLVMContext &context) {
   return mainModule;
 }
 
-static LogicalResult runMLIRPasses(Operation *module,
-                                   JitRunnerOptions &options) {
-  PassManager passManager(module->getContext(),
-                          module->getName().getStringRef());
-  if (failed(applyPassManagerCLOptions(passManager)))
-    return failure();
-  passManager.addPass(createGpuKernelOutliningPass());
-  passManager.addPass(createConvertGPUToSPIRVPass(/*mapMemorySpace=*/true));
-
-  OpPassManager &nestedPM = passManager.nest<spirv::ModuleOp>();
-  nestedPM.addPass(spirv::createSPIRVLowerABIAttributesPass());
-  nestedPM.addPass(spirv::createSPIRVUpdateVCEPass());
-  passManager.addPass(createLowerHostCodeToLLVMPass());
-  passManager.addPass(createConvertSPIRVToLLVMPass());
-  return passManager.run(module);
-}
-
 int main(int argc, char **argv) {
   llvm::InitLLVM y(argc, argv);
 
@@ -99,7 +76,6 @@ int main(int argc, char **argv) {
   llvm::InitializeNativeTargetAsmPrinter();
 
   mlir::JitRunnerConfig jitRunnerConfig;
-  jitRunnerConfig.mlirTransformer = runMLIRPasses;
   jitRunnerConfig.llvmModuleBuilder = convertMLIRModule;
 
   mlir::DialectRegistry registry;

@andfau-amd
Copy link
Contributor Author

For broader motivation see #73457.

@kuhar kuhar self-requested a review October 8, 2024 18:27
Copy link
Member

@kuhar kuhar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@andfau-amd andfau-amd force-pushed the 73457-runner-migration-cpu-pipeline-pass branch from 7d5f2d2 to cee317a Compare October 8, 2024 18:46
Copy link
Member

@kuhar kuhar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM % nit

@andfau-amd andfau-amd force-pushed the 73457-runner-migration-cpu-pipeline-pass branch from cee317a to 1fcb1a9 Compare October 8, 2024 18:52
Copy link
Member

@kuhar kuhar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fixes

@andfau-amd andfau-amd force-pushed the 73457-runner-migration-cpu-pipeline-pass branch 2 times, most recently from 9a445c6 to 0b2fdef Compare October 10, 2024 19:17
Adds a new mlir-opt test-only pipeline, -test-spirv-cpu-runner-pipeline,
containing the set of MLIR passes needed for the mlir-spirv-cpu-runner,
and removes them from the runner. The tests are changed to invoke
mlir-opt with this flag before running the runner. The eventual goal
is to move all host/device code generation steps out of the runner, like
with some of the other runners.
@andfau-amd andfau-amd requested a review from kuhar October 10, 2024 19:18
Copy link
Member

@kuhar kuhar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@kuhar
Copy link
Member

kuhar commented Oct 10, 2024

Thanks for the suggestion @joker-eph

@kuhar kuhar merged commit f0312d9 into llvm:main Oct 21, 2024
8 checks passed
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 21, 2024

LLVM Buildbot has detected a new failure on builder flang-aarch64-libcxx running on linaro-flang-aarch64-libcxx while building mlir at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/89/builds/8820

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
72.677 [154/5/7079] Linking CXX executable bin/tco
75.375 [154/4/7080] Linking CXX shared library lib/libFortranSemantics.so.20.0git
75.383 [153/4/7081] Creating library symlink lib/libFortranSemantics.so
75.532 [147/9/7082] Linking CXX executable tools/flang/unittests/Evaluate/real.test
75.534 [147/8/7083] Linking CXX executable tools/flang/unittests/Evaluate/logical.test
75.536 [147/7/7084] Linking CXX executable tools/flang/unittests/Evaluate/integer.test
75.683 [147/6/7085] Linking CXX executable tools/flang/unittests/Evaluate/folding.test
75.698 [147/5/7086] Building CXX object tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o
75.736 [146/5/7087] Linking CXX executable tools/flang/unittests/Evaluate/expression.test
75.955 [146/4/7088] Linking CXX shared library lib/libMLIRTestPass.so.20.0git
FAILED: lib/libMLIRTestPass.so.20.0git 
: && /usr/local/bin/c++ -fPIC -stdlib=libc++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O3 -DNDEBUG  -stdlib=libc++ -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRTestPass.so.20.0git -o lib/libMLIRTestPass.so.20.0git tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestDynamicPipeline.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestPassManager.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/lib:"  lib/libMLIRTestDialect.so.20.0git  lib/libMLIRDerivedAttributeOpInterface.so.20.0git  lib/libMLIRLinalgTransforms.so.20.0git  lib/libMLIRIndexDialect.so.20.0git  lib/libMLIRMemRefTransforms.so.20.0git  lib/libMLIRArithTransforms.so.20.0git  lib/libMLIRFuncTransforms.so.20.0git  lib/libMLIRNVGPUDialect.so.20.0git  lib/libMLIRMeshTransforms.so.20.0git  lib/libMLIRTosaShardingInterfaceImpl.so.20.0git  lib/libMLIRShardingInterface.so.20.0git  lib/libMLIRMeshDialect.so.20.0git  lib/libMLIRTosaDialect.so.20.0git  lib/libMLIRQuantUtils.so.20.0git  lib/libMLIRQuantDialect.so.20.0git  lib/libMLIRSCFTransforms.so.20.0git  lib/libMLIRBufferizationTransforms.so.20.0git  lib/libMLIRTensorTransforms.so.20.0git  lib/libMLIRAffineTransforms.so.20.0git  lib/libMLIRSCFUtils.so.20.0git  lib/libMLIRTensorTilingInterfaceImpl.so.20.0git  lib/libMLIRLinalgUtils.so.20.0git  lib/libMLIRTensorUtils.so.20.0git  lib/libMLIRTilingInterface.so.20.0git  lib/libMLIRVectorToSCF.so.20.0git  lib/libMLIRVectorTransforms.so.20.0git  lib/libMLIRLinalgDialect.so.20.0git  lib/libMLIRBufferizationDialect.so.20.0git  lib/libMLIRParser.so.20.0git  lib/libMLIRBytecodeReader.so.20.0git  lib/libMLIRAsmParser.so.20.0git  lib/libMLIRSparseTensorDialect.so.20.0git  lib/libMLIRMathDialect.so.20.0git  lib/libMLIRAffineUtils.so.20.0git  lib/libMLIRVectorUtils.so.20.0git  lib/libMLIRFuncDialect.so.20.0git  lib/libMLIRVectorDialect.so.20.0git  lib/libMLIRMaskableOpInterface.so.20.0git  lib/libMLIRMaskingOpInterface.so.20.0git  lib/libMLIRAffineAnalysis.so.20.0git  lib/libMLIRSCFDialect.so.20.0git  lib/libMLIRControlFlowDialect.so.20.0git  lib/libMLIRGPUDialect.so.20.0git  lib/libMLIRDLTIDialect.so.20.0git  lib/libMLIRMemRefUtils.so.20.0git  lib/libMLIRVectorInterfaces.so.20.0git  lib/libMLIRLLVMDialect.so.20.0git  lib/libLLVMBitWriter.so.20.0git  lib/libLLVMAsmParser.so.20.0git  lib/libLLVMBitReader.so.20.0git  lib/libLLVMCore.so.20.0git  lib/libLLVMBinaryFormat.so.20.0git  lib/libMLIRPolynomialDialect.so.20.0git  lib/libMLIRReduce.so.20.0git  lib/libMLIRTensorDialect.so.20.0git  lib/libMLIRAffineDialect.so.20.0git  lib/libMLIRMemRefDialect.so.20.0git  lib/libMLIRArithUtils.so.20.0git  lib/libMLIRDialectUtils.so.20.0git  lib/libMLIRComplexDialect.so.20.0git  lib/libMLIRArithDialect.so.20.0git  lib/libMLIRDialect.so.20.0git  lib/libMLIRUBDialect.so.20.0git  lib/libMLIRInferIntRangeCommon.so.20.0git  lib/libMLIRCastInterfaces.so.20.0git  lib/libMLIRParallelCombiningOpInterface.so.20.0git  lib/libMLIRShapedOpInterfaces.so.20.0git  lib/libMLIRTransforms.so.20.0git  lib/libMLIRTransformUtils.so.20.0git  lib/libMLIRSubsetOpInterface.so.20.0git  lib/libMLIRRewrite.so.20.0git  lib/libMLIRRewritePDL.so.20.0git  lib/libMLIRPDLToPDLInterp.so.20.0git  lib/libMLIRPass.so.20.0git  lib/libMLIRPDLInterpDialect.so.20.0git  lib/libMLIRPDLDialect.so.20.0git  lib/libMLIRMemorySlotInterfaces.so.20.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.20.0git  lib/libMLIRValueBoundsOpInterface.so.20.0git  lib/libMLIRAnalysis.so.20.0git  lib/libMLIRControlFlowInterfaces.so.20.0git  lib/libMLIRDataLayoutInterfaces.so.20.0git  lib/libMLIRInferIntRangeInterface.so.20.0git  lib/libMLIRInferTypeOpInterface.so.20.0git  lib/libMLIRCallInterfaces.so.20.0git  lib/libMLIRLoopLikeInterface.so.20.0git  lib/libMLIRFunctionInterfaces.so.20.0git  lib/libMLIRPresburger.so.20.0git  lib/libMLIRSideEffectInterfaces.so.20.0git  lib/libMLIRViewLikeInterface.so.20.0git  lib/libMLIRDestinationStyleOpInterface.so.20.0git  lib/libMLIRIR.so.20.0git  lib/libMLIRSupport.so.20.0git  lib/libLLVMSupport.so.20.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-libcxx/build/lib && :
/usr/bin/ld: tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o: in function `(anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&)':
TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x20): undefined reference to `mlir::createGpuKernelOutliningPass(llvm::StringRef)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x70): undefined reference to `mlir::createConvertGPUToSPIRVPass(bool)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0xd4): undefined reference to `mlir::spirv::createSPIRVLowerABIAttributesPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x100): undefined reference to `mlir::spirv::createSPIRVUpdateVCEPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x12c): undefined reference to `mlir::createLowerHostCodeToLLVMPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x158): undefined reference to `mlir::createConvertSPIRVToLLVMPass()'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
82.218 [146/3/7089] Linking CXX shared library lib/libFortranLower.so.20.0git
166.504 [146/2/7090] Building CXX object tools/mlir/tools/mlir-opt/CMakeFiles/mlir-opt.dir/mlir-opt.cpp.o
211.520 [146/1/7091] Building CXX object tools/mlir/tools/mlir-opt/CMakeFiles/MLIRMlirOptMain.dir/mlir-opt.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 21, 2024

LLVM Buildbot has detected a new failure on builder mlir-nvidia running on mlir-nvidia while building mlir at step 5 "build-check-mlir-build-only".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/138/builds/5244

Here is the relevant piece of the build log for the reference
Step 5 (build-check-mlir-build-only) failure: build (failure)
...
32.145 [21/16/4973] Linking CXX executable bin/mlir-cpu-runner
32.148 [20/16/4974] Linking C executable bin/mlir-capi-sparse-tensor-test
32.153 [19/16/4975] Linking CXX executable bin/mlir-vulkan-runner
32.156 [18/16/4976] Linking C executable bin/mlir-capi-ir-test
32.158 [17/16/4977] Linking C executable bin/mlir-capi-translation-test
32.159 [16/16/4978] Linking C executable bin/mlir-capi-transform-test
32.186 [15/16/4979] Linking C executable bin/mlir-capi-execution-engine-test
32.306 [14/16/4980] Linking C executable bin/mlir-capi-transform-interpreter-test
33.475 [13/16/4981] Building CXX object tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o
33.624 [12/16/4982] Linking CXX shared library lib/libMLIRTestPass.so.20.0git
FAILED: lib/libMLIRTestPass.so.20.0git 
: && /usr/bin/clang++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,--color-diagnostics   -Wl,--gc-sections -shared -Wl,-soname,libMLIRTestPass.so.20.0git -o lib/libMLIRTestPass.so.20.0git tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestDynamicPipeline.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestPassManager.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib:"  lib/libMLIRTestDialect.so.20.0git  lib/libMLIRDerivedAttributeOpInterface.so.20.0git  lib/libMLIRLinalgTransforms.so.20.0git  lib/libMLIRIndexDialect.so.20.0git  lib/libMLIRMemRefTransforms.so.20.0git  lib/libMLIRArithTransforms.so.20.0git  lib/libMLIRFuncTransforms.so.20.0git  lib/libMLIRNVGPUDialect.so.20.0git  lib/libMLIRMeshTransforms.so.20.0git  lib/libMLIRTosaShardingInterfaceImpl.so.20.0git  lib/libMLIRShardingInterface.so.20.0git  lib/libMLIRMeshDialect.so.20.0git  lib/libMLIRTosaDialect.so.20.0git  lib/libMLIRQuantUtils.so.20.0git  lib/libMLIRQuantDialect.so.20.0git  lib/libMLIRSCFTransforms.so.20.0git  lib/libMLIRBufferizationTransforms.so.20.0git  lib/libMLIRTensorTransforms.so.20.0git  lib/libMLIRAffineTransforms.so.20.0git  lib/libMLIRSCFUtils.so.20.0git  lib/libMLIRTensorTilingInterfaceImpl.so.20.0git  lib/libMLIRLinalgUtils.so.20.0git  lib/libMLIRTensorUtils.so.20.0git  lib/libMLIRTilingInterface.so.20.0git  lib/libMLIRVectorToSCF.so.20.0git  lib/libMLIRVectorTransforms.so.20.0git  lib/libMLIRLinalgDialect.so.20.0git  lib/libMLIRBufferizationDialect.so.20.0git  lib/libMLIRParser.so.20.0git  lib/libMLIRBytecodeReader.so.20.0git  lib/libMLIRAsmParser.so.20.0git  lib/libMLIRSparseTensorDialect.so.20.0git  lib/libMLIRMathDialect.so.20.0git  lib/libMLIRAffineUtils.so.20.0git  lib/libMLIRVectorUtils.so.20.0git  lib/libMLIRFuncDialect.so.20.0git  lib/libMLIRVectorDialect.so.20.0git  lib/libMLIRMaskableOpInterface.so.20.0git  lib/libMLIRMaskingOpInterface.so.20.0git  lib/libMLIRAffineAnalysis.so.20.0git  lib/libMLIRSCFDialect.so.20.0git  lib/libMLIRControlFlowDialect.so.20.0git  lib/libMLIRGPUDialect.so.20.0git  lib/libMLIRDLTIDialect.so.20.0git  lib/libMLIRMemRefUtils.so.20.0git  lib/libMLIRVectorInterfaces.so.20.0git  lib/libMLIRLLVMDialect.so.20.0git  lib/libLLVMBitWriter.so.20.0git  lib/libLLVMAsmParser.so.20.0git  lib/libLLVMBitReader.so.20.0git  lib/libLLVMCore.so.20.0git  lib/libLLVMBinaryFormat.so.20.0git  lib/libMLIRPolynomialDialect.so.20.0git  lib/libMLIRReduce.so.20.0git  lib/libMLIRTensorDialect.so.20.0git  lib/libMLIRAffineDialect.so.20.0git  lib/libMLIRMemRefDialect.so.20.0git  lib/libMLIRArithUtils.so.20.0git  lib/libMLIRDialectUtils.so.20.0git  lib/libMLIRComplexDialect.so.20.0git  lib/libMLIRArithDialect.so.20.0git  lib/libMLIRDialect.so.20.0git  lib/libMLIRUBDialect.so.20.0git  lib/libMLIRInferIntRangeCommon.so.20.0git  lib/libMLIRCastInterfaces.so.20.0git  lib/libMLIRParallelCombiningOpInterface.so.20.0git  lib/libMLIRShapedOpInterfaces.so.20.0git  lib/libMLIRTransforms.so.20.0git  lib/libMLIRTransformUtils.so.20.0git  lib/libMLIRSubsetOpInterface.so.20.0git  lib/libMLIRRewrite.so.20.0git  lib/libMLIRRewritePDL.so.20.0git  lib/libMLIRPDLToPDLInterp.so.20.0git  lib/libMLIRPass.so.20.0git  lib/libMLIRPDLInterpDialect.so.20.0git  lib/libMLIRPDLDialect.so.20.0git  lib/libMLIRMemorySlotInterfaces.so.20.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.20.0git  lib/libMLIRValueBoundsOpInterface.so.20.0git  lib/libMLIRAnalysis.so.20.0git  lib/libMLIRControlFlowInterfaces.so.20.0git  lib/libMLIRDataLayoutInterfaces.so.20.0git  lib/libMLIRInferIntRangeInterface.so.20.0git  lib/libMLIRInferTypeOpInterface.so.20.0git  lib/libMLIRCallInterfaces.so.20.0git  lib/libMLIRLoopLikeInterface.so.20.0git  lib/libMLIRFunctionInterfaces.so.20.0git  lib/libMLIRPresburger.so.20.0git  lib/libMLIRSideEffectInterfaces.so.20.0git  lib/libMLIRViewLikeInterface.so.20.0git  lib/libMLIRDestinationStyleOpInterface.so.20.0git  lib/libMLIRIR.so.20.0git  lib/libMLIRSupport.so.20.0git  lib/libLLVMSupport.so.20.0git  -Wl,-rpath-link,/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib && :
ld.lld: error: undefined symbol: mlir::createGpuKernelOutliningPass(llvm::StringRef)
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))

ld.lld: error: undefined symbol: mlir::createConvertGPUToSPIRVPass(bool)
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))

ld.lld: error: undefined symbol: mlir::spirv::createSPIRVLowerABIAttributesPass()
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))

ld.lld: error: undefined symbol: mlir::spirv::createSPIRVUpdateVCEPass()
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))

ld.lld: error: undefined symbol: mlir::createLowerHostCodeToLLVMPass()
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))

ld.lld: error: undefined symbol: mlir::createConvertSPIRVToLLVMPass()
>>> referenced by TestSPIRVCPURunnerPipeline.cpp
>>>               tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o:((anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&))
clang: error: linker command failed with exit code 1 (use -v to see invocation)
34.205 [12/15/4983] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirAsyncPasses.cpython-310-x86_64-linux-gnu.so
34.469 [12/14/4984] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirGPUPasses.cpython-310-x86_64-linux-gnu.so
34.537 [12/13/4985] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirLinalgPasses.cpython-310-x86_64-linux-gnu.so
34.568 [12/12/4986] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirSparseTensorPasses.cpython-310-x86_64-linux-gnu.so
34.753 [12/11/4987] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsLinalg.cpython-310-x86_64-linux-gnu.so
35.040 [12/10/4988] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsNVGPU.cpython-310-x86_64-linux-gnu.so
35.176 [12/9/4989] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsPDL.cpython-310-x86_64-linux-gnu.so
35.301 [12/8/4990] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirTransformInterpreter.cpython-310-x86_64-linux-gnu.so
35.447 [12/7/4991] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsTransform.cpython-310-x86_64-linux-gnu.so
35.537 [12/6/4992] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsLLVM.cpython-310-x86_64-linux-gnu.so
35.578 [12/5/4993] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsGPU.cpython-310-x86_64-linux-gnu.so
35.613 [12/4/4994] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsQuant.cpython-310-x86_64-linux-gnu.so
36.431 [12/3/4995] Linking CXX shared module tools/mlir/python_packages/mlir_core/mlir/_mlir_libs/_mlirDialectsSparseTensor.cpython-310-x86_64-linux-gnu.so

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 21, 2024

LLVM Buildbot has detected a new failure on builder flang-aarch64-sharedlibs running on linaro-flang-aarch64-sharedlibs while building mlir at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/80/builds/5191

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
137.225 [2427/19/5004] Building arm_neon.h...
137.226 [2427/18/5005] Building CXX object tools/clang/lib/APINotes/CMakeFiles/obj.clangAPINotes.dir/APINotesTypes.cpp.o
137.232 [2427/17/5006] Building CXX object tools/clang/lib/APINotes/CMakeFiles/obj.clangAPINotes.dir/APINotesReader.cpp.o
137.234 [2427/16/5007] Building CXX object tools/clang/lib/APINotes/CMakeFiles/obj.clangAPINotes.dir/APINotesManager.cpp.o
137.243 [2427/15/5008] Building arm_cde.h...
137.255 [2427/14/5009] Building CXX object tools/clang/lib/APINotes/CMakeFiles/obj.clangAPINotes.dir/APINotesWriter.cpp.o
137.272 [2427/13/5010] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/DependencyDirectivesScanner.cpp.o
137.276 [2427/12/5011] Building CXX object tools/clang/lib/ASTMatchers/Dynamic/CMakeFiles/obj.clangDynamicASTMatchers.dir/Registry.cpp.o
137.354 [2427/11/5012] Building CXX object tools/clang/lib/APINotes/CMakeFiles/obj.clangAPINotes.dir/APINotesYAMLCompiler.cpp.o
137.409 [2427/10/5013] Linking CXX shared library lib/libMLIRTestPass.so.20.0git
FAILED: lib/libMLIRTestPass.so.20.0git 
: && /usr/local/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRTestPass.so.20.0git -o lib/libMLIRTestPass.so.20.0git tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestDynamicPipeline.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestPassManager.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib:"  lib/libMLIRTestDialect.so.20.0git  lib/libMLIRDerivedAttributeOpInterface.so.20.0git  lib/libMLIRLinalgTransforms.so.20.0git  lib/libMLIRIndexDialect.so.20.0git  lib/libMLIRMemRefTransforms.so.20.0git  lib/libMLIRArithTransforms.so.20.0git  lib/libMLIRFuncTransforms.so.20.0git  lib/libMLIRNVGPUDialect.so.20.0git  lib/libMLIRMeshTransforms.so.20.0git  lib/libMLIRTosaShardingInterfaceImpl.so.20.0git  lib/libMLIRShardingInterface.so.20.0git  lib/libMLIRMeshDialect.so.20.0git  lib/libMLIRTosaDialect.so.20.0git  lib/libMLIRQuantUtils.so.20.0git  lib/libMLIRQuantDialect.so.20.0git  lib/libMLIRSCFTransforms.so.20.0git  lib/libMLIRBufferizationTransforms.so.20.0git  lib/libMLIRTensorTransforms.so.20.0git  lib/libMLIRAffineTransforms.so.20.0git  lib/libMLIRSCFUtils.so.20.0git  lib/libMLIRTensorTilingInterfaceImpl.so.20.0git  lib/libMLIRLinalgUtils.so.20.0git  lib/libMLIRTensorUtils.so.20.0git  lib/libMLIRTilingInterface.so.20.0git  lib/libMLIRVectorToSCF.so.20.0git  lib/libMLIRVectorTransforms.so.20.0git  lib/libMLIRLinalgDialect.so.20.0git  lib/libMLIRBufferizationDialect.so.20.0git  lib/libMLIRParser.so.20.0git  lib/libMLIRBytecodeReader.so.20.0git  lib/libMLIRAsmParser.so.20.0git  lib/libMLIRSparseTensorDialect.so.20.0git  lib/libMLIRMathDialect.so.20.0git  lib/libMLIRAffineUtils.so.20.0git  lib/libMLIRVectorUtils.so.20.0git  lib/libMLIRFuncDialect.so.20.0git  lib/libMLIRVectorDialect.so.20.0git  lib/libMLIRMaskableOpInterface.so.20.0git  lib/libMLIRMaskingOpInterface.so.20.0git  lib/libMLIRAffineAnalysis.so.20.0git  lib/libMLIRSCFDialect.so.20.0git  lib/libMLIRControlFlowDialect.so.20.0git  lib/libMLIRGPUDialect.so.20.0git  lib/libMLIRDLTIDialect.so.20.0git  lib/libMLIRMemRefUtils.so.20.0git  lib/libMLIRVectorInterfaces.so.20.0git  lib/libMLIRLLVMDialect.so.20.0git  lib/libLLVMBitWriter.so.20.0git  lib/libLLVMAsmParser.so.20.0git  lib/libLLVMBitReader.so.20.0git  lib/libLLVMCore.so.20.0git  lib/libLLVMBinaryFormat.so.20.0git  lib/libMLIRPolynomialDialect.so.20.0git  lib/libMLIRReduce.so.20.0git  lib/libMLIRTensorDialect.so.20.0git  lib/libMLIRAffineDialect.so.20.0git  lib/libMLIRMemRefDialect.so.20.0git  lib/libMLIRArithUtils.so.20.0git  lib/libMLIRDialectUtils.so.20.0git  lib/libMLIRComplexDialect.so.20.0git  lib/libMLIRArithDialect.so.20.0git  lib/libMLIRDialect.so.20.0git  lib/libMLIRUBDialect.so.20.0git  lib/libMLIRInferIntRangeCommon.so.20.0git  lib/libMLIRCastInterfaces.so.20.0git  lib/libMLIRParallelCombiningOpInterface.so.20.0git  lib/libMLIRShapedOpInterfaces.so.20.0git  lib/libMLIRTransforms.so.20.0git  lib/libMLIRTransformUtils.so.20.0git  lib/libMLIRSubsetOpInterface.so.20.0git  lib/libMLIRRewrite.so.20.0git  lib/libMLIRRewritePDL.so.20.0git  lib/libMLIRPDLToPDLInterp.so.20.0git  lib/libMLIRPass.so.20.0git  lib/libMLIRPDLInterpDialect.so.20.0git  lib/libMLIRPDLDialect.so.20.0git  lib/libMLIRMemorySlotInterfaces.so.20.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.20.0git  lib/libMLIRValueBoundsOpInterface.so.20.0git  lib/libMLIRAnalysis.so.20.0git  lib/libMLIRControlFlowInterfaces.so.20.0git  lib/libMLIRDataLayoutInterfaces.so.20.0git  lib/libMLIRInferIntRangeInterface.so.20.0git  lib/libMLIRInferTypeOpInterface.so.20.0git  lib/libMLIRCallInterfaces.so.20.0git  lib/libMLIRLoopLikeInterface.so.20.0git  lib/libMLIRFunctionInterfaces.so.20.0git  lib/libMLIRPresburger.so.20.0git  lib/libMLIRSideEffectInterfaces.so.20.0git  lib/libMLIRViewLikeInterface.so.20.0git  lib/libMLIRDestinationStyleOpInterface.so.20.0git  lib/libMLIRIR.so.20.0git  lib/libMLIRSupport.so.20.0git  lib/libLLVMSupport.so.20.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-sharedlibs/build/lib && :
/usr/bin/ld: tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o: in function `(anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&)':
TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x20): undefined reference to `mlir::createGpuKernelOutliningPass(llvm::StringRef)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x6c): undefined reference to `mlir::createConvertGPUToSPIRVPass(bool)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0xcc): undefined reference to `mlir::spirv::createSPIRVLowerABIAttributesPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0xf8): undefined reference to `mlir::spirv::createSPIRVUpdateVCEPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x124): undefined reference to `mlir::createLowerHostCodeToLLVMPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x150): undefined reference to `mlir::createConvertSPIRVToLLVMPass()'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
137.448 [2427/9/5014] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/InitHeaderSearch.cpp.o
137.523 [2427/8/5015] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/HeaderMap.cpp.o
137.543 [2427/7/5016] Generating VCSVersion.inc
137.641 [2427/6/5017] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/Lexer.cpp.o
137.645 [2427/5/5018] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/MacroArgs.cpp.o
137.654 [2427/4/5019] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/HeaderSearch.cpp.o
137.672 [2427/3/5020] Building CXX object tools/clang/lib/Tooling/CMakeFiles/obj.clangTooling.dir/CommonOptionsParser.cpp.o
137.746 [2427/2/5021] Building CXX object tools/clang/lib/Lex/CMakeFiles/obj.clangLex.dir/LiteralSupport.cpp.o
174.214 [2427/1/5022] Building CXX object tools/mlir/tools/mlir-opt/CMakeFiles/MLIRMlirOptMain.dir/mlir-opt.cpp.o
ninja: build stopped: subcommand failed.

@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 21, 2024

LLVM Buildbot has detected a new failure on builder flang-aarch64-latest-gcc running on linaro-flang-aarch64-latest-gcc while building mlir at step 5 "build-unified-tree".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/130/builds/5123

Here is the relevant piece of the build log for the reference
Step 5 (build-unified-tree) failure: build (failure)
...
141.053 [2240/7/5007] Copying clang's avxifmaintrin.h...
141.055 [2240/6/5008] Copying clang's lsxintrin.h...
141.056 [2240/5/5009] Copying clang's avxneconvertintrin.h...
141.057 [2240/4/5010] Copying clang's avxvnniint16intrin.h...

146.035 [2240/3/5011] Building CXX object tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o
146.069 [2237/5/5012] Copying clang's opencl-c-base.h...
146.085 [2236/5/5013] Copying clang's altivec.h...
146.087 [2236/4/5014] Copying clang's opencl-c.h...
147.254 [2236/3/5015] Linking CXX shared library lib/libMLIRTestPass.so.20.0git
FAILED: lib/libMLIRTestPass.so.20.0git 
: && /usr/local/bin/c++ -fPIC -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Wno-unused-but-set-parameter -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete   -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/./lib  -Wl,--gc-sections -shared -Wl,-soname,libMLIRTestPass.so.20.0git -o lib/libMLIRTestPass.so.20.0git tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestDynamicPipeline.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestPassManager.cpp.o tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib:/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/lib:"  lib/libMLIRTestDialect.so.20.0git  lib/libMLIRDerivedAttributeOpInterface.so.20.0git  lib/libMLIRLinalgTransforms.so.20.0git  lib/libMLIRIndexDialect.so.20.0git  lib/libMLIRMemRefTransforms.so.20.0git  lib/libMLIRArithTransforms.so.20.0git  lib/libMLIRFuncTransforms.so.20.0git  lib/libMLIRNVGPUDialect.so.20.0git  lib/libMLIRMeshTransforms.so.20.0git  lib/libMLIRTosaShardingInterfaceImpl.so.20.0git  lib/libMLIRShardingInterface.so.20.0git  lib/libMLIRMeshDialect.so.20.0git  lib/libMLIRTosaDialect.so.20.0git  lib/libMLIRQuantUtils.so.20.0git  lib/libMLIRQuantDialect.so.20.0git  lib/libMLIRSCFTransforms.so.20.0git  lib/libMLIRBufferizationTransforms.so.20.0git  lib/libMLIRTensorTransforms.so.20.0git  lib/libMLIRAffineTransforms.so.20.0git  lib/libMLIRSCFUtils.so.20.0git  lib/libMLIRTensorTilingInterfaceImpl.so.20.0git  lib/libMLIRLinalgUtils.so.20.0git  lib/libMLIRTensorUtils.so.20.0git  lib/libMLIRTilingInterface.so.20.0git  lib/libMLIRVectorToSCF.so.20.0git  lib/libMLIRVectorTransforms.so.20.0git  lib/libMLIRLinalgDialect.so.20.0git  lib/libMLIRBufferizationDialect.so.20.0git  lib/libMLIRParser.so.20.0git  lib/libMLIRBytecodeReader.so.20.0git  lib/libMLIRAsmParser.so.20.0git  lib/libMLIRSparseTensorDialect.so.20.0git  lib/libMLIRMathDialect.so.20.0git  lib/libMLIRAffineUtils.so.20.0git  lib/libMLIRVectorUtils.so.20.0git  lib/libMLIRFuncDialect.so.20.0git  lib/libMLIRVectorDialect.so.20.0git  lib/libMLIRMaskableOpInterface.so.20.0git  lib/libMLIRMaskingOpInterface.so.20.0git  lib/libMLIRAffineAnalysis.so.20.0git  lib/libMLIRSCFDialect.so.20.0git  lib/libMLIRControlFlowDialect.so.20.0git  lib/libMLIRGPUDialect.so.20.0git  lib/libMLIRDLTIDialect.so.20.0git  lib/libMLIRMemRefUtils.so.20.0git  lib/libMLIRVectorInterfaces.so.20.0git  lib/libMLIRLLVMDialect.so.20.0git  lib/libLLVMBitWriter.so.20.0git  lib/libLLVMAsmParser.so.20.0git  lib/libLLVMBitReader.so.20.0git  lib/libLLVMCore.so.20.0git  lib/libLLVMBinaryFormat.so.20.0git  lib/libMLIRPolynomialDialect.so.20.0git  lib/libMLIRReduce.so.20.0git  lib/libMLIRTensorDialect.so.20.0git  lib/libMLIRAffineDialect.so.20.0git  lib/libMLIRMemRefDialect.so.20.0git  lib/libMLIRArithUtils.so.20.0git  lib/libMLIRDialectUtils.so.20.0git  lib/libMLIRComplexDialect.so.20.0git  lib/libMLIRArithDialect.so.20.0git  lib/libMLIRDialect.so.20.0git  lib/libMLIRUBDialect.so.20.0git  lib/libMLIRInferIntRangeCommon.so.20.0git  lib/libMLIRCastInterfaces.so.20.0git  lib/libMLIRParallelCombiningOpInterface.so.20.0git  lib/libMLIRShapedOpInterfaces.so.20.0git  lib/libMLIRTr
ansforms.so.20.0git  lib/libMLIRTransformUtils.so.20.0git  lib/libMLIRSubsetOpInterface.so.20.0git  lib/libMLIRRewrite.so.20.0git  lib/libMLIRRewritePDL.so.20.0git  lib/libMLIRPDLToPDLInterp.so.20.0git  lib/libMLIRPass.so.20.0git  lib/libMLIRPDLInterpDialect.so.20.0git  lib/libMLIRPDLDialect.so.20.0git  lib/libMLIRMemorySlotInterfaces.so.20.0git  lib/libMLIRRuntimeVerifiableOpInterface.so.20.0git  lib/libMLIRValueBoundsOpInterface.so.20.0git  lib/libMLIRAnalysis.so.20.0git  lib/libMLIRControlFlowInterfaces.so.20.0git  lib/libMLIRDataLayoutInterfaces.so.20.0git  lib/libMLIRInferIntRangeInterface.so.20.0git  lib/libMLIRInferTypeOpInterface.so.20.0git  lib/libMLIRCallInterfaces.so.20.0git  lib/libMLIRLoopLikeInterface.so.20.0git  lib/libMLIRFunctionInterfaces.so.20.0git  lib/libMLIRPresburger.so.20.0git  lib/libMLIRSideEffectInterfaces.so.20.0git  lib/libMLIRViewLikeInterface.so.20.0git  lib/libMLIRDestinationStyleOpInterface.so.20.0git  lib/libMLIRIR.so.20.0git  lib/libMLIRSupport.so.20.0git  lib/libLLVMSupport.so.20.0git  -Wl,-rpath-link,/home/tcwg-buildbot/worker/flang-aarch64-latest-gcc/build/lib && :
/usr/bin/ld: tools/mlir/test/lib/Pass/CMakeFiles/MLIRTestPass.dir/TestSPIRVCPURunnerPipeline.cpp.o: in function `(anonymous namespace)::buildTestSPIRVCPURunnerPipeline(mlir::OpPassManager&)':
TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x38): undefined reference to `mlir::createGpuKernelOutliningPass(llvm::StringRef)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x84): undefined reference to `mlir::createConvertGPUToSPIRVPass(bool)'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0xe4): undefined reference to `mlir::spirv::createSPIRVLowerABIAttributesPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x10c): undefined reference to `mlir::spirv::createSPIRVUpdateVCEPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x134): undefined reference to `mlir::createLowerHostCodeToLLVMPass()'
/usr/bin/ld: TestSPIRVCPURunnerPipeline.cpp:(.text._ZN12_GLOBAL__N_131buildTestSPIRVCPURunnerPipelineERN4mlir13OpPassManagerE+0x15c): undefined reference to `mlir::createConvertSPIRVToLLVMPass()'
collect2: error: ld returned 1 exit status

190.279 [2236/2/5016] Building CXX object tools/mlir/tools/mlir-opt/CMakeFiles/mlir-opt.dir/mlir-opt.cpp.o
191.182 [2236/1/5017] Building CXX object tools/mlir/tools/mlir-opt/CMakeFiles/MLIRMlirOptMain.dir/mlir-opt.cpp.o
ninja: build stopped: subcommand failed.


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mlir:core MLIR Core Infrastructure mlir:spirv mlir
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants