Andarwinux wrote:
> Thanks for checking it, fixed.
```
target datalayout =
"e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-gnu"
define ptr @__gdtoa(ptr %0, i32 %1, i32 %2, i32 %3, ptr %4, i1 %5) {
%7 = call double @__b2d_D2A()
switch i32 %1, label %13 [
i32 0, label %14
i32 1, label %14
i32 2, label %8
i32 4, label %9
i32 3, label %common.ret1
]
8: ; preds = %6
br label %9
9: ; preds = %8, %6
%10 = phi i32 [ 0, %8 ], [ 1, %6 ]
store i32 %1, ptr %4, align 4
%11 = call ptr @__rv_alloc_D2A()
%12 = icmp eq i32 %3, 0
%.not1.not.not = select i1 %5, i1 false, i1 %12
br i1 %.not1.not.not, label %23, label %14
common.ret1: ; preds = %23, %22, %18, %14,
%6
%common.ret1.op = phi ptr [ null, %23 ], [ null, %22 ], [ null, %18 ], [
null, %14 ], [ null, %6 ]
ret ptr %common.ret1.op
13: ; preds = %6
unreachable
14: ; preds = %9, %6, %6
%15 = phi i32 [ %10, %9 ], [ 0, %6 ], [ 0, %6 ]
%16 = phi ptr [ %0, %9 ], [ null, %6 ], [ null, %6 ]
%17 = icmp slt i32 %2, 0
br i1 %17, label %18, label %common.ret1
18: ; preds = %14
%19 = call ptr @__i2b_D2A()
%20 = icmp ne i32 %15, 0
%21 = select i1 %20, i1 true, i1 %5
br i1 %21, label %22, label %common.ret1
22: ; preds = %18
store i8 0, ptr %16, align 1
br label %common.ret1
23: ; preds = %9
store i32 0, ptr %4, align 4
br label %common.ret1
}
declare double @__b2d_D2A()
declare ptr @__rv_alloc_D2A()
declare ptr @__i2b_D2A()
```
```
clang -march=novalake reduced.ll --target=x86_64-pc-windows-gnu -O3 -c -o
/dev/null
fatal error: error in backend: Cannot emit physreg copy instruction
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and
include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /build/install/llvmbin/clang -march=novalake
reduced.ll --target=x86_64-pc-windows-gnu -O3 -c -o /dev/null
1. Code generation
2. Running pass 'Function Pass Manager' on module 'reduced.ll'.
3. Running pass 'Post-RA pseudo instruction expansion pass' on function
'@__gdtoa'
#0 0x000055c907acbc16 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
Signals.cpp:0:0
clang: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
```
I encountered another crash that was very similar.
Original IR
[www.ll.txt](https://github.com/user-attachments/files/26632571/www.ll.txt)
https://github.com/llvm/llvm-project/pull/191368
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits