[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:41:17 PDT 2024


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `mlir-nvidia` running on `mlir-nvidia` 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/138/builds/2297

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/rank-reducing-subview.mlir' FAILED ********************
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 1
/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/bin/mlir-opt /vol/worker/mlir-nvidia/mlir-nvidia/llvm.src/mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.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/mlir-nvidia/mlir-nvidia/llvm.obj/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void    -shared-libs=/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib/libmlir_runner_utils.so  | /vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/bin/FileCheck /vol/worker/mlir-nvidia/mlir-nvidia/llvm.src/mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.mlir
# executed command: /vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/bin/mlir-opt /vol/worker/mlir-nvidia/mlir-nvidia/llvm.src/mlir/test/Integration/Dialect/Linalg/CPU/rank-reducing-subview.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/mlir-nvidia/mlir-nvidia/llvm.obj/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void -shared-libs=/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/lib/libmlir_runner_utils.so
# .---command stderr------------
# | mlir-cpu-runner: /vol/worker/mlir-nvidia/mlir-nvidia/llvm.src/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/mlir-nvidia/mlir-nvidia/llvm.obj/bin/mlir-cpu-runner -O3 -e main -entry-point-result=void -shared-libs=/vol/worker/mlir-nvidia/mlir-nvidia/llvm.obj/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"
# | Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
# | 0  libLLVMSupport.so.20.0git              0x00007bda3c597e57 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39
# | 1  libLLVMSupport.so.20.0git              0x00007bda3c5959ee llvm::sys::RunSignalHandlers() + 238
# | 2  libLLVMSupport.so.20.0git              0x00007bda3c59852a
# | 3  libc.so.6                              0x00007bda3be68520
# | 4  libc.so.6                              0x00007bda3bebc9fc pthread_kill + 300
# | 5  libc.so.6                              0x00007bda3be68476 raise + 22
# | 6  libc.so.6                              0x00007bda3be4e7f3 abort + 211
# | 7  libc.so.6                              0x00007bda3be4e71b
# | 8  libc.so.6                              0x00007bda3be5fe96
# | 9  libLLVMCore.so.20.0git                 0x00007bda3caad4dd
# | 10 libLLVMAnalysis.so.20.0git             0x00007bda3d900a7a llvm::ScalarEvolution::getOperandsToCreate(llvm::Value*, llvm::SmallVectorImpl<llvm::Value*>&) + 122
# | 11 libLLVMAnalysis.so.20.0git             0x00007bda3d8f070e llvm::ScalarEvolution::createSCEVIter(llvm::Value*) + 206
# | 12 libLLVMAnalysis.so.20.0git             0x00007bda3d7fde26 llvm::getPointersDiff(llvm::Type*, llvm::Value*, llvm::Type*, llvm::Value*, llvm::DataLayout const&, llvm::ScalarEvolution&, bool, bool) + 406
# | 13 libLLVMVectorize.so.20.0git            0x00007bda41098362 llvm::slpvectorizer::BoUpSLP::canFormVector(llvm::ArrayRef<llvm::StoreInst*>, llvm::SmallVector<unsigned int, 4u>&) const + 338
# | 14 libLLVMVectorize.so.20.0git            0x00007bda4109889d llvm::slpvectorizer::BoUpSLP::findExternalStoreUsersReorderIndices(llvm::slpvectorizer::BoUpSLP::TreeEntry*) const + 269
# | 15 libLLVMVectorize.so.20.0git            0x00007bda4108ef86 llvm::slpvectorizer::BoUpSLP::reorderTopToBottom() + 214
# | 16 libLLVMVectorize.so.20.0git            0x00007bda410e20b3 llvm::SLPVectorizerPass::vectorizeStoreChain(llvm::ArrayRef<llvm::Value*>, llvm::slpvectorizer::BoUpSLP&, unsigned int, unsigned int, unsigned int&) + 1459
# | 17 libLLVMVectorize.so.20.0git            0x00007bda410e4ca2
# | 18 libLLVMVectorize.so.20.0git            0x00007bda410e36bb 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>>&) + 3355
# | 19 libLLVMVectorize.so.20.0git            0x00007bda410de579 llvm::SLPVectorizerPass::vectorizeStoreChains(llvm::slpvectorizer::BoUpSLP&) + 2297
# | 20 libLLVMVectorize.so.20.0git            0x00007bda410dcafb llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) + 1579
# | 21 libLLVMVectorize.so.20.0git            0x00007bda410dbf6d llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 813
# | 22 libLLVMPasses.so.20.0git               0x00007bda418901ad
# | 23 libLLVMCore.so.20.0git                 0x00007bda3cb8951a llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) + 442
# | 24 libLLVMX86CodeGen.so.20.0git           0x00007bda45660bfd
# | 25 libLLVMCore.so.20.0git                 0x00007bda3cb8dd72 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 482
# | 26 libLLVMX86CodeGen.so.20.0git           0x00007bda456609ad
# | 27 libLLVMCore.so.20.0git                 0x00007bda3cb881da llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 442
# | 28 libMLIRExecutionEngineUtils.so.20.0git 0x00007bda4192d677
# | 29 libMLIRJitRunner.so.20.0git            0x00007bda459f975c
# | 30 libMLIRExecutionEngine.so.20.0git      0x00007bda459d37a1 mlir::ExecutionEngine::create(mlir::Operation*, mlir::ExecutionEngineOptions const&, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>) + 7073
# | 31 libMLIRJitRunner.so.20.0git            0x00007bda459f9146
# | 32 libMLIRJitRunner.so.20.0git            0x00007bda459f593f
...

```

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


More information about the llvm-commits mailing list