[llvm] [Support] Assert that DomTree nodes share parent (PR #101198)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 10 09:27:46 PDT 2024


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `mlir-rocm-mi200` running on `mi200-buildbot` while building `llvm` at step 6 "test-build-check-mlir-build-only-check-mlir".

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

Here is the relevant piece of the build log for the reference:
```
Step 6 (test-build-check-mlir-build-only-check-mlir) failure: test (failure)
******************** TEST 'MLIR :: Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir' FAILED ********************
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 1
/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-opt /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir -convert-linalg-to-loops -convert-scf-to-cf  -expand-strided-metadata -lower-affine -convert-arith-to-llvm -finalize-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts |  /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void    -shared-libs=/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/lib/libmlir_runner_utils.so  | /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/FileCheck /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir
# executed command: /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-opt /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/mlir/test/Integration/Dialect/Linalg/CPU/matmul-vs-matvec.mlir -convert-linalg-to-loops -convert-scf-to-cf -expand-strided-metadata -lower-affine -convert-arith-to-llvm -finalize-memref-to-llvm -convert-func-to-llvm -reconcile-unrealized-casts
# executed command: /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void -shared-libs=/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/lib/libmlir_runner_utils.so
# .---command stderr------------
# | mlir-cpu-runner: /vol/worker/mi200-buildbot/mlir-rocm-mi200/llvm-project/llvm/include/llvm/Support/GenericDomTree.h:401: DomTreeNodeBase<NodeT> *llvm::DominatorTreeBase<llvm::BasicBlock, false>::getNode(const NodeT *) const [NodeT = llvm::BasicBlock, IsPostDom = false]: Assertion `(!BB || Parent == NodeTrait::getParent(const_cast<NodeT *>(BB))) && "cannot get DomTreeNode of block with different parent"' failed.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
# | Stack dump:
# | 0.	Program arguments: /vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void -shared-libs=/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/lib/libmlir_runner_utils.so
# | 1.	Running pass "function<eager-inv>(Float2IntPass,LowerConstantIntrinsicsPass,ControlHeightReductionPass,loop(LoopRotatePass<header-duplication;no-prepare-for-lto>,LoopDeletionPass),LoopDistributePass,InjectTLIMappings,LoopVectorizePass<no-interleave-forced-only;no-vectorize-forced-only;>,InferAlignmentPass,LoopLoadEliminationPass,InstCombinePass<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,SimplifyCFGPass<bonus-inst-threshold=1;forward-switch-cond;switch-range-to-icmp;switch-to-lookup;no-keep-loops;hoist-common-insts;sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,SLPVectorizerPass,VectorCombinePass,InstCombinePass<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,LoopUnrollPass<O3>,WarnMissedTransformationsPass,SROAPass<preserve-cfg>,InferAlignmentPass,InstCombinePass<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,loop-mssa(LICMPass<allowspeculation>),AlignmentFromAssumptionsPass,LoopSinkPass,InstSimplifyPass,DivRemPairsPass,TailCallElimPass,SimplifyCFGPass<bonus-inst-threshold=1;no-forward-switch-cond;switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch;speculate-unpredictables>)" on module "LLVMDialectModule"
# | 2.	Running pass "SLPVectorizerPass" on function "main"
# |  #0 0x000055c528278ec8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x2407ec8)
# |  #1 0x000055c5282769be llvm::sys::RunSignalHandlers() (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x24059be)
# |  #2 0x000055c52827988d SignalHandler(int) Signals.cpp:0:0
# |  #3 0x00007fc8f726f420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
# |  #4 0x00007fc8f6d3200b raise (/lib/x86_64-linux-gnu/libc.so.6+0x4300b)
# |  #5 0x00007fc8f6d11859 abort (/lib/x86_64-linux-gnu/libc.so.6+0x22859)
# |  #6 0x00007fc8f6d11729 (/lib/x86_64-linux-gnu/libc.so.6+0x22729)
# |  #7 0x00007fc8f6d22fd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
# |  #8 0x000055c5286869da llvm::DominatorTreeBase<llvm::BasicBlock, false>::getNode(llvm::BasicBlock const*) const (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x28159da)
# |  #9 0x000055c52b7a29d0 llvm::ScalarEvolution::getOperandsToCreate(llvm::Value*, llvm::SmallVectorImpl<llvm::Value*>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x59319d0)
# | #10 0x000055c52b792a21 llvm::ScalarEvolution::createSCEVIter(llvm::Value*) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x5921a21)
# | #11 0x000055c52b6b7549 llvm::getPointersDiff(llvm::Type*, llvm::Value*, llvm::Type*, llvm::Value*, llvm::DataLayout const&, llvm::ScalarEvolution&, bool, bool) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x5846549)
# | #12 0x000055c52995d771 llvm::slpvectorizer::BoUpSLP::canFormVector(llvm::ArrayRef<llvm::StoreInst*>, llvm::SmallVector<unsigned int, 4u>&) const (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3aec771)
# | #13 0x000055c52995dc3d llvm::slpvectorizer::BoUpSLP::findExternalStoreUsersReorderIndices(llvm::slpvectorizer::BoUpSLP::TreeEntry*) const (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3aecc3d)
# | #14 0x000055c5299546be llvm::slpvectorizer::BoUpSLP::reorderTopToBottom() (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3ae36be)
# | #15 0x000055c5299a3c5f llvm::SLPVectorizerPass::vectorizeStoreChain(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, unsigned int, unsigned int, unsigned int&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3b32c5f)
# | #16 0x000055c5299a653f llvm::SLPVectorizerPass::vectorizeStores(llvm::ArrayRef<llvm::StoreInst*>, llvm::slpvectorizer::BoUpSLP&, llvm::DenseSet<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, llvm::DenseMapInfo<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, void>>&)::$_0::operator()(std::set<std::pair<unsigned int, int>, llvm::SLPVectorizerPass::vectorizeStores(llvm::ArrayRef<llvm::StoreInst*>, llvm::slpvectorizer::BoUpSLP&, llvm::DenseSet<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, llvm::DenseMapInfo<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, void>>&)::StoreDistCompare, std::allocator<std::pair<unsigned int, int>>> const&) const SLPVectorizer.cpp:0:0
# | #17 0x000055c5299a518b llvm::SLPVectorizerPass::vectorizeStores(llvm::ArrayRef<llvm::StoreInst*>, llvm::slpvectorizer::BoUpSLP&, llvm::DenseSet<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, llvm::DenseMapInfo<std::tuple<llvm::Value*, llvm::Value*, llvm::Value*, llvm::Value*, unsigned int>, void>>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3b3418b)
# | #18 0x000055c5299a00c8 llvm::SLPVectorizerPass::vectorizeStoreChains(llvm::slpvectorizer::BoUpSLP&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3b2f0c8)
# | #19 0x000055c52999e74b llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3b2d74b)
# | #20 0x000055c52999ddb8 llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x3b2cdb8)
# | #21 0x000055c52943178d llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilder.cpp:0:0
# | #22 0x000055c5283f00aa llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x257f0aa)
# | #23 0x000055c52877772d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) X86CodeGenPassBuilder.cpp:0:0
# | #24 0x000055c5283f4bc7 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x2583bc7)
# | #25 0x000055c5287774cd llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) X86CodeGenPassBuilder.cpp:0:0
# | #26 0x000055c5283eed7a llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x257dd7a)
# | #27 0x000055c528f22041 std::_Function_handler<llvm::Error (llvm::Module*), mlir::makeOptimizingTransformer(unsigned int, unsigned int, llvm::TargetMachine*)::$_0>::_M_invoke(std::_Any_data const&, llvm::Module*&&) OptUtils.cpp:0:0
# | #28 0x000055c5289a2a4c llvm::Error llvm::function_ref<llvm::Error (llvm::Module*)>::callback_fn<std::function<llvm::Error (llvm::Module*)>>(long, llvm::Module*) JitRunner.cpp:0:0
# | #29 0x000055c5289a63d3 mlir::ExecutionEngine::create(mlir::Operation*, mlir::ExecutionEngineOptions const&, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x2b353d3)
# | #30 0x000055c5289a2567 compileAndExecute((anonymous namespace)::Options&, mlir::Operation*, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, void**, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) JitRunner.cpp:0:0
# | #31 0x000055c5289a0358 compileAndExecuteVoidFunction((anonymous namespace)::Options&, mlir::Operation*, llvm::StringRef, (anonymous namespace)::CompileAndExecuteConfig, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) JitRunner.cpp:0:0
# | #32 0x000055c52899e79d mlir::JitRunnerMain(int, char**, mlir::DialectRegistry const&, mlir::JitRunnerConfig) (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x2b2d79d)
# | #33 0x000055c5281d2288 main (/vol/worker/mi200-buildbot/mlir-rocm-mi200/build/bin/mlir-cpu-runner+0x2361288)
...

```

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


More information about the llvm-commits mailing list