Skip to content

[SDAG] Assertion failed: Node is not in map! #155345

@dtcxzyw

Description

@dtcxzyw

Reproducer: https://godbolt.org/z/d37nf5YdK

; bin/llc reduced.ll -o -
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

@g_288 = external global [3 x i8]

define i64 @main(ptr %argv, i1 %cmp292.i, ptr %0) {
entry:
  %.pre1056.i = load i8, ptr %argv, align 1
  %1 = or i8 %.pre1056.i, 1
  %2 = zext i8 %1 to i32
  store i8 %1, ptr %0, align 1
  %3 = load i8, ptr %0, align 1
  %conv261.i = sext i8 %3 to i64
  %sh_prom.i.i = zext i32 %2 to i64
  %cmp1.i.i = icmp ult i64 0, %conv261.i
  %4 = select i1 %cmp292.i, i1 false, i1 %cmp1.i.i
  %spec.select.i.i = select i1 %4, i64 0, i64 %sh_prom.i.i
  %cond.i914.i = shl i64 1, %spec.select.i.i
  store i8 %1, ptr getelementptr inbounds nuw (i8, ptr @g_288, i64 1), align 1
  %5 = load i8, ptr getelementptr inbounds nuw (i8, ptr @g_288, i64 1), align 1
  %conv261.1.i = sext i8 %5 to i64
  %cmp1.i.1.i = icmp ult i64 0, %conv261.1.i
  %6 = select i1 %cmp292.i, i1 false, i1 %cmp1.i.1.i
  %spec.select.i.1.i = select i1 %6, i64 0, i64 1
  %and298.1.i = and i64 %spec.select.i.1.i, %cond.i914.i
  ret i64 %and298.1.i
}
t59: i8 = freeze t59

Node is not in map!
UNREACHABLE executed at /home/dtcxzyw/WorkSpace/Projects/compilers/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1258!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: ./bin/llc reduced.ll
1.      Running pass 'Function Pass Manager' on module 'reduced.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@main'
 #0 0x000075b520e2f072 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.22.0git+0x22f072)
 #1 0x000075b520e2b63f llvm::sys::RunSignalHandlers() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.22.0git+0x22b63f)
 #2 0x000075b520e2b78c SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x000075b520445330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
 #4 0x000075b52049eb2c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x000075b52049eb2c __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x000075b52049eb2c pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x000075b52044527e raise ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x000075b5204288ff abort ./stdlib/abort.c:81:7
 #9 0x000075b520d2946e (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSupport.so.22.0git+0x12946e)
#10 0x000075b523f77d58 llvm::SelectionDAG::RemoveNodeFromCSEMaps(llvm::SDNode*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x377d58)
#11 0x000075b523fcccbb llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3cccbb)
#12 0x000075b523fccff9 llvm::SelectionDAG::AddModifiedNodeToCSEMaps(llvm::SDNode*) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3ccff9)
#13 0x000075b523fcd998 llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDValue, llvm::SDValue) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3cd998)
#14 0x000075b523ce7c34 (anonymous namespace)::DAGCombiner::visitFREEZE(llvm::SDNode*) DAGCombiner.cpp:0:0
#15 0x000075b523d69c3f (anonymous namespace)::DAGCombiner::combine(llvm::SDNode*) DAGCombiner.cpp:0:0
#16 0x000075b523d6b4ab (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel) DAGCombiner.cpp:0:0
#17 0x000075b523d6db9d llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::BatchAAResults*, llvm::CodeGenOptLevel) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x16db9d)
#18 0x000075b523feef71 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3eef71)
#19 0x000075b523ff268a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3f268a)
#20 0x000075b523ff3a82 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3f3a82)
#21 0x000075b523fe249a llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMSelectionDAG.so.22.0git+0x3e249a)
#22 0x000075b52346262c llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCodeGen.so.22.0git+0x46262c)
#23 0x000075b5212c9434 llvm::FPPassManager::runOnFunction(llvm::Function&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.22.0git+0x2c9434)
#24 0x000075b5212c99c4 llvm::FPPassManager::runOnModule(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.22.0git+0x2c99c4)
#25 0x000075b5212ca12d llvm::legacy::PassManagerImpl::run(llvm::Module&) (/home/dtcxzyw/WorkSpace/Projects/compilers/LLVM/llvm-build/bin/../lib/libLLVMCore.so.22.0git+0x2ca12d)
#26 0x00005d3b47626ce1 compileModule(char**, llvm::LLVMContext&) llc.cpp:0:0
#27 0x00005d3b476199c1 main (./bin/llc+0x149c1)
#28 0x000075b52042a1ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#29 0x000075b52042a28b call_init ./csu/../csu/libc-start.c:128:20
#30 0x000075b52042a28b __libc_start_main ./csu/../csu/libc-start.c:347:5
#31 0x00005d3b4761adc5 _start (./bin/llc+0x15dc5)
Aborted (core dumped)

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions