| Issue |
63309
|
| Summary |
Assertion `isNew && "Node emitted out of order - early"` failed
|
| Labels |
backend:X86,
llvm:crash
|
| Assignees |
|
| Reporter |
chfast
|
```
llc: llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:261: void llvm::InstrEmitter::CreateVirtualRegisters(llvm::SDNode *, llvm::MachineInstrBuilder &, const llvm::MCInstrDesc &, bool, bool, DenseMap<llvm::SDValue, llvm::Register> &): Assertion `isNew && "Node emitted out of order - early"' failed.
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 -mtriple=x86_64 crash-x86_64-2.bc
1. Running pass 'Function Pass Manager' on module 'crash-x86_64-2.bc'.
2. Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
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 llc 0x000055555a13c71b __interceptor_backtrace + 91
1 llc 0x0000555563830079 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 313
2 llc 0x0000555563828105 llvm::sys::RunSignalHandlers() + 405
3 llc 0x00005555638318a3
4 libc.so.6 0x00007ffff7a39520
5 libc.so.6 0x00007ffff7a8da7c pthread_kill + 300
6 libc.so.6 0x00007ffff7a39476 raise + 22
7 libc.so.6 0x00007ffff7a1f7f3 abort + 211
8 libc.so.6 0x00007ffff7a1f71b
9 libc.so.6 0x00007ffff7a30e96
10 llc 0x000055556321ef05
11 llc 0x00005555632304bd
12 llc 0x0000555562d8af59
13 llc 0x0000555562d87844 llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) + 7108
14 llc 0x0000555563077637 llvm::SelectionDAGISel::CodeGenAndEmitDAG() + 22807
15 llc 0x000055556306deb8 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 22568
16 llc 0x00005555630618f4 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 7044
17 llc 0x000055555e5f5cf8
18 llc 0x00005555609f4876 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 2774
19 llc 0x0000555561d4dc92 llvm::FPPassManager::runOnFunction(llvm::Function&) + 2562
20 llc 0x0000555561d6c553 llvm::FPPassManager::runOnModule(llvm::Module&) + 147
21 llc 0x0000555561d4fe36 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 6662
22 llc 0x000055555a1d6e18 main + 35080
23 libc.so.6 0x00007ffff7a20d90
24 libc.so.6 0x00007ffff7a20e40 __libc_start_main + 128
25 llc 0x000055555a0fef35 _start + 37
[1] 2507325 IOT instruction (core dumped) bin/llc -mtriple=x86_64 crash-x86_64-2.bc
```
```llvm
; ModuleID = 'crash-x86_64-2.bc'
source_filename = "M"
target triple = "x86_64-unknown-linux-gnu"
@G = external global i1
@G.1 = external global i1
@G.2 = external global i8
@G.3 = external global i1
@G.4 = external global i16
@G.5 = external global i16
@G.6 = external global ptr
@G.7 = external global i32
@G.8 = external global i64
@G.9 = external global i32
@G.10 = external global i1
@G.11 = external global i8
@G.12 = external global i16
@G.13 = external global i32
define void @f() {
BB:
%LGV20 = load i16, ptr @G.12, align 2
%A19 = alloca i8, align 1
%L19 = load i32, ptr %A19, align 4
store i8 undef, ptr %A19, align 1
%LGV16 = load i8, ptr @G.11, align 1
%LGV9 = load i64, ptr @G.8, align 4
%LGV3 = load i16, ptr @G.5, align 2
%A8 = alloca i1, align 1
%L9 = load i32, ptr %A8, align 4
store i1 undef, ptr %A8, align 1
%C10 = icmp sle i64 0, %LGV9
%A7 = alloca i1, align 1
%L7 = load i8, ptr %A7, align 1
%L14 = load i1, ptr %A7, align 1
%B16 = lshr i32 %L9, 0
%C9 = icmp sle i16 %LGV3, 0
%C18 = icmp sle i1 false, %L14
%L5 = load float, ptr %A7, align 4
store i1 undef, ptr %A7, align 1
%LGV5 = load i16, ptr @G.4, align 2
%A5 = alloca i1, align 1
%L17 = load i32, ptr %A5, align 4
%L15 = load i8, ptr %A5, align 1
%B21 = sdiv i32 %L17, %B16
%L3 = load i1, ptr %A5, align 1
%A4 = alloca i1, align 1
%L13 = load i32, ptr %A4, align 4
%L4 = load i16, ptr %A4, align 2
%L2 = load i1, ptr %A4, align 1
store i1 poison, ptr %A4, align 1
%LGV2 = load i8, ptr @G.2, align 1
%A = alloca i1, align 1
%L18 = load i8, ptr %A, align 1
%L = load i1, ptr %A, align 1
store i1 undef, ptr %A, align 1
%B22 = sub i16 42, %LGV20
%LGV = load i1, ptr @G, align 1
%C6 = icmp ugt i16 %L4, %LGV5
%C1 = icmp sgt i1 %L, %LGV
%C7 = icmp uge i1 false, %L2
%C2 = icmp sle i1 false, %C1
store i1 %C2, ptr %A, align 1
%B5 = add i1 false, %C7
%B6 = lshr i1 %C6, %C6
%B14 = mul i32 -1, %L13
store i1 %B5, ptr %A4, align 1
%G17 = getelementptr i1, ptr %A, i1 %L3
store i1 %B6, ptr %A8, align 1
%G = getelementptr i64, ptr %A4, i8 %LGV2
%L8 = load i8, ptr %G, align 1
store i1 %C9, ptr %A, align 1
%B18 = srem i8 %L15, %LGV16
store i32 poison, ptr @G.7, align 4
store i1 %C10, ptr %A7, align 1
store i32 %B21, ptr @G.7, align 4
%C22 = icmp sle i8 %L7, %L18
store i32 %B14, ptr %G17, align 4
store i16 %B22, ptr %G, align 2
store i1 %C18, ptr %A5, align 1
store i8 %B18, ptr %A19, align 1
store i1 %C22, ptr %G17, align 1
ret void
}
```
https://godbolt.org/z/nPe9rYnTv
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs