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

Reply via email to