[llvm] Reland "[Support] Assert that DomTree nodes share parent"" (PR #102782)
Mikael Holmén via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 27 00:02:18 PST 2025
mikaelholmen wrote:
> Hi,
>
> We found another case hitting the assert added here:
>
> ```
> opt -verify-scev -passes="loop-unroll-full" bbi-104544.ll -o /dev/null
> ```
>
> Result:
>
> ```
> opt: ../include/llvm/Support/GenericDomTree.h:403: 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: build-all/bin/opt -verify-scev -passes=loop-unroll-full bbi-104544.ll -o /dev/null
> 1. Running pass "function(loop(loop-unroll-full))" on module "bbi-104544.ll"
> 2. Running pass "loop(loop-unroll-full)" on function "main"
> #0 0x0000564dfe0db856 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x4631856)
> #1 0x0000564dfe0d929e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x462f29e)
> #2 0x0000564dfe0dc0d9 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
> #3 0x00007f6d7e62ad10 __restore_rt (/lib64/libpthread.so.0+0x12d10)
> #4 0x00007f6d7bfca52f raise (/lib64/libc.so.6+0x4e52f)
> #5 0x00007f6d7bf9de65 abort (/lib64/libc.so.6+0x21e65)
> #6 0x00007f6d7bf9dd39 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d39)
> #7 0x00007f6d7bfc2e86 (/lib64/libc.so.6+0x46e86)
> #8 0x0000564dfe70cc01 llvm::DominatorTreeBase<llvm::BasicBlock, false>::properlyDominates(llvm::BasicBlock const*, llvm::BasicBlock const*) const (build-all/bin/opt+0x4c62c01)
> #9 0x0000564dfe88ef13 llvm::ScalarEvolution::computeBlockDisposition(llvm::SCEV const*, llvm::BasicBlock const*) (build-all/bin/opt+0x4de4f13)
> #10 0x0000564dfe892b84 llvm::ScalarEvolution::verify() const (build-all/bin/opt+0x4de8b84)
> #11 0x0000564dff7c00ff llvm::FunctionToLoopPassAdaptor::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x5d160ff)
> #12 0x0000564dff5511cd llvm::detail::PassModel<llvm::Function, llvm::FunctionToLoopPassAdaptor, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
> #13 0x0000564dfe3002a7 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (build-all/bin/opt+0x48562a7)
> #14 0x0000564dff55366d llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) PassBuilderPipelines.cpp:0:0
> #15 0x0000564dfe304e7e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x485ae7e)
> #16 0x0000564dff54f6ad llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilderPipelines.cpp:0:0
> #17 0x0000564dfe2fef97 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x4854f97)
> #18 0x0000564dff4dc32c llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (build-all/bin/opt+0x5a3232c)
> #19 0x0000564dfe09e412 optMain (build-all/bin/opt+0x45f4412)
> #20 0x00007f6d7bfb67e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5)
> #21 0x0000564dfe09c02e _start (build-all/bin/opt+0x45f202e)
> Abort (core dumped)
> ```
>
> [bbi-104544.ll.gz](https://github.com/user-attachments/files/19004641/bbi-104544.ll.gz)
I wrote
https://github.com/llvm/llvm-project/issues/129019
about it.
https://github.com/llvm/llvm-project/pull/102782
More information about the llvm-commits
mailing list