| Issue |
60997
|
| Summary |
aarch64 global isel: LLVM ERROR: Use not jointly dominated by defs
|
| Labels |
backend:AArch64,
globalisel,
crash-on-valid
|
| Assignees |
|
| Reporter |
regehr
|
I'm getting a crash for this IR:
```llvm
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-linux-gnu"
define i18 @f(i27 %0) {
%2 = sext i27 %0 to i32
%3 = sext i1 true to i32
%4 = sdiv i32 %2, %3
%5 = sext i1 true to i32
%6 = icmp ule i32 %4, %5
%7 = sext i27 %0 to i32
%8 = sext i1 %6 to i32
%9 = srem i32 %7, %8
%10 = trunc i32 %9 to i18
ret i18 %10
}
```
```
Johns-MacBook-Pro:tmp regehr$ llc --global-isel --march=aarch64 reduced.ll
Use of %9 does not have a corresponding definition on every path:
48r %5:gpr32 = SDIVWr %2:gpr32, %9:gpr32
LLVM ERROR: Use not jointly dominated by defs.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc --global-isel reduced.ll
1. Running pass 'Function Pass Manager' on module 'reduced.ll'.
2. Running pass 'Live Interval Analysis' 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 libLLVMSupport.dylib 0x000000010b847c88 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1 libLLVMSupport.dylib 0x000000010b846b0c llvm::sys::RunSignalHandlers() + 112
2 libLLVMSupport.dylib 0x000000010b848314 SignalHandler(int) + 344
3 libsystem_platform.dylib 0x00000001989082a4 _sigtramp + 56
4 libsystem_pthread.dylib 0x00000001988d9cec pthread_kill + 288
5 libsystem_c.dylib 0x00000001988122c8 abort + 180
6 libLLVMSupport.dylib 0x000000010b796600 llvm::report_fatal_error(llvm::Twine const&, bool) + 280
7 libLLVMSupport.dylib 0x000000010b7964e8 llvm::report_fatal_error(llvm::Twine const&, bool) + 0
8 libLLVMCodeGen.dylib 0x000000010cbcdaf4 llvm::LiveRangeCalc::findReachingDefs(llvm::LiveRange&, llvm::MachineBasicBlock&, llvm::SlotIndex, unsigned int, llvm::ArrayRef<llvm::SlotIndex>) + 4284
9 libLLVMCodeGen.dylib 0x000000010cbcc9ac llvm::LiveRangeCalc::extend(llvm::LiveRange&, llvm::SlotIndex, unsigned int, llvm::ArrayRef<llvm::SlotIndex>) + 200
10 libLLVMCodeGen.dylib 0x000000010cbd0c48 llvm::LiveIntervalCalc::extendToUses(llvm::LiveRange&, llvm::Register, llvm::LaneBitmask, llvm::LiveInterval*) + 600
11 libLLVMCodeGen.dylib 0x000000010cbd0888 llvm::LiveIntervalCalc::calculate(llvm::LiveInterval&, bool) + 1056
12 libLLVMCodeGen.dylib 0x000000010cbb34dc llvm::LiveIntervals::computeVirtRegInterval(llvm::LiveInterval&) + 140
13 libLLVMCodeGen.dylib 0x000000010cbb2024 llvm::LiveIntervals::computeVirtRegs() + 156
14 libLLVMCodeGen.dylib 0x000000010cbb1ec4 llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) + 552
15 libLLVMCodeGen.dylib 0x000000010cc7c458 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 616
16 libLLVMCore.dylib 0x000000010dd1459c llvm::FPPassManager::runOnFunction(llvm::Function&) + 704
17 libLLVMCore.dylib 0x000000010dd1b2cc llvm::FPPassManager::runOnModule(llvm::Module&) + 60
18 libLLVMCore.dylib 0x000000010dd14b70 llvm::legacy::PassManagerImpl::run(llvm::Module&) + 764
19 llc 0x0000000104549194 compileModule(char**, llvm::LLVMContext&) + 5672
20 llc 0x0000000104547520 main + 1128
21 dyld 0x00000001985afe50 start + 2544
Abort trap: 6
Johns-MacBook-Pro:tmp regehr$
```
there's this previous instance of seeing this error https://github.com/llvm/llvm-project/issues/38246 but the circumstances are different enough that this seemed worth reporting freshly
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs