| Issue |
63293
|
| Summary |
Failed assertion when building RISCV Linux kernel after d0189584631e5
|
| Labels |
backend:RISC-V
|
| Assignees |
|
| Reporter |
nathanchance
|
After d0189584631e587279ee5f0af5feb94d8045bb31 (cc @mgudim), I see a crash while building the Linux kernel for `ARCH=riscv`:
```
$ make -skj"$(nproc)" ARCH=riscv LLVM=1 mrproper allmodconfig drivers/net/wireless/mediatek/mt76/mt7996/eeprom.o
clang: /home/nathan/cbl/src/llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:927: const SDValue &llvm::SDNode::getOperand(unsigned int) const: Assertion `Num < NumOperands && "Invalid child # of SDNode!"' failed.
...
```
A reduced LLVM IR reproducer:
```
target datalayout = "e-m:e-p:64:64-i64:64-i128:128-n32:64-S128"
target triple = "riscv64-unknown-linux-gnu"
define i32 @mt7996_eeprom_parse_hw_cap(i8 %0) {
entry:
%1 = tail call i8 @llvm.umin.i8(i8 %0, i8 1)
%notmask = shl i8 -1, %1
store i8 %notmask, ptr null, align 4
ret i32 0
}
; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i8 @llvm.umin.i8(i8, i8) #0
attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
```
```
$ llc reduced.ll
llc: /mnt/nvme/tmp/cvise.7TsLFYTL1d/src/llvm/include/llvm/CodeGen/SelectionDAGNodes.h:927: const SDValue &llvm::SDNode::getOperand(unsigned int) const: Assertion `Num < NumOperands && "Invalid child # of SDNode!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@mt7996_eeprom_parse_hw_cap'
#0 0x000055f5070f9b58 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x4850b58)
#1 0x000055f5070f78de llvm::sys::RunSignalHandlers() (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x484e8de)
#2 0x000055f5070fa318 SignalHandler(int) Signals.cpp:0:0
#3 0x00007fe17b26fab0 (/usr/lib/libc.so.6+0x39ab0)
#4 0x00007fe17b2bf26c (/usr/lib/libc.so.6+0x8926c)
#5 0x00007fe17b26fa08 raise (/usr/lib/libc.so.6+0x39a08)
#6 0x00007fe17b258538 abort (/usr/lib/libc.so.6+0x22538)
#7 0x00007fe17b25845c (/usr/lib/libc.so.6+0x2245c)
#8 0x00007fe17b2683d6 (/usr/lib/libc.so.6+0x323d6)
#9 0x000055f505aa7208 llvm::RISCVTargetLowering::lowerSELECT(llvm::SDValue, llvm::SelectionDAG&) const RISCVISelLowering.cpp:0:0
#10 0x000055f505aa71d6 llvm::RISCVTargetLowering::lowerSELECT(llvm::SDValue, llvm::SelectionDAG&) const RISCVISelLowering.cpp:0:0
#11 0x000055f505aa3a7d llvm::RISCVTargetLowering::LowerOperation(llvm::SDValue, llvm::SelectionDAG&) const RISCVISelLowering.cpp:0:0
#12 0x000055f506e1d616 (anonymous namespace)::SelectionDAGLegalize::LegalizeOp(llvm::SDNode*) LegalizeDAG.cpp:0:0
#13 0x000055f506e1c7af llvm::SelectionDAG::Legalize() (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x45737af)
#14 0x000055f506f285e0 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x467f5e0)
#15 0x000055f506f264af llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x467d4af)
#16 0x000055f506f23262 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x467a262)
#17 0x000055f5064f53a0 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x3c4c3a0)
#18 0x000055f5069fd3f7 llvm::FPPassManager::runOnFunction(llvm::Function&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x41543f7)
#19 0x000055f506a05d02 llvm::FPPassManager::runOnModule(llvm::Module&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x415cd02)
#20 0x000055f5069fdf07 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x4154f07)
#21 0x000055f50517affa main (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x28d1ffa)
#22 0x00007fe17b259850 (/usr/lib/libc.so.6+0x23850)
#23 0x00007fe17b25990a __libc_start_main (/usr/lib/libc.so.6+0x2390a)
#24 0x000055f5051758e5 _start (/mnt/nvme/tmp/cvise.7TsLFYTL1d/install/llvm-bad/bin/llc+0x28cc8e5)
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs