[clang] [llvm] Add support for flag output operand "=@cc" for SystemZ. (PR #125970)
Nathan Chancellor via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 15 09:37:31 PDT 2025
nathanchance wrote:
I am seeing a crash while building the Linux kernel for `ARCH=s390` after this change.
```
# bad: [96da982128bf7b005afa24a8e6e41e5867d30bc4] [sanitizers] COMPILER_RT_ASAN_UNIT_TESTS_USE_HOST_RUNTIME to build only unit tests (#161455)
# good: [e8f721e621d85a2670f13307b1b99528cf5e8708] [clang][docs] Update doc and release note for probe instrumentation (#162606)
git bisect start '96da982128bf7b005afa24a8e6e41e5867d30bc4' 'e8f721e621d85a2670f13307b1b99528cf5e8708'
# bad: [da5fb5e964c213d0ec834ad0b560a523a57ce5cc] [ObjCopy][DX] Support for -dump-section flag (#159999)
git bisect bad da5fb5e964c213d0ec834ad0b560a523a57ce5cc
# bad: [69e0fd6d8dea666205fca52265f09b3eb5ee2f3d] [X86] Remove PREFETCHI from PTL (#163196)
git bisect bad 69e0fd6d8dea666205fca52265f09b3eb5ee2f3d
# good: [782dd178fcb3b146dd16792b54c867095b863ccc] [SPIRV] Do not emit @llvm.compiler.used (#162678)
git bisect good 782dd178fcb3b146dd16792b54c867095b863ccc
# good: [4a8dd4998dae8b7d67e416d20a1fa8a9451c64f5] [BOLT][NFC] Fix for a dangling reference UB (#163344)
git bisect good 4a8dd4998dae8b7d67e416d20a1fa8a9451c64f5
# bad: [d7fc7703402184792319f65570ad6a49ffe8cde7] [LLVM][DAGCombiner] Improve simplifyDivRem's effectiveness after type legalisation. (#162706)
git bisect bad d7fc7703402184792319f65570ad6a49ffe8cde7
# good: [3793e75b7af7e4908316e7869d8fc61517401865] [libc++][C++03] Cherry-pick #129348 (#162821)
git bisect good 3793e75b7af7e4908316e7869d8fc61517401865
# bad: [6712e20c5261376a6b0015fb3c8d15124757d47d] Add support for flag output operand "=@cc" for SystemZ. (#125970)
git bisect bad 6712e20c5261376a6b0015fb3c8d15124757d47d
# first bad commit: [6712e20c5261376a6b0015fb3c8d15124757d47d] Add support for flag output operand "=@cc" for SystemZ. (#125970)
```
```
$ make -skj"$(nproc)" ARCH=s390 LLVM=1 clean allmodconfig drivers/gpu/drm/nouveau/nouveau_fence.o
# Machine code for function nouveau_fence_context_kill: NoPHIs, TracksLiveness, TiedOpsRewritten
Function Live Ins: $r2d in %14, $r3d in %15, $cc, $cc
bb.0.entry:
successors: %bb.1(0x50000000), %bb.2(0x30000000); %bb.1(62.50%), %bb.2(37.50%)
liveins: $r2d, $r3d, $cc, $cc
%15:gr64bit = COPY $r3d
%14:addr64bit = COPY $r2d
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$r2d = COPY %14:addr64bit
CallBRASL @_raw_spin_lock_irqsave, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d
%17:gr64bit = COPY $r2d
%1:addr64bit = LA %14:addr64bit, 80, $noreg
%18:gr64bit = SRLG %1:addr64bit, $noreg, 3
%19:gr64bit = LLIHH 28
%20:addr64bit = AGRK %18:gr64bit, %19:gr64bit, implicit-def dead $cc
CLI %20:addr64bit, 0, 0, implicit-def $cc :: (load (s8) from %ir.3)
BRC 14, 8, %bb.2, implicit $cc
J %bb.1
bb.1 (%ir-block.6):
; predecessors: %bb.0
successors: %bb.2(0x80000000); %bb.2(100.00%)
$r2d = COPY %1:addr64bit
nomerge CallBRASL @__asan_report_load8_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.2 (%ir-block.8):
; predecessors: %bb.0, %bb.1
successors: %bb.3(0x30000000), %bb.4(0x50000000); %bb.3(37.50%), %bb.4(62.50%)
%2:gr64bit = LG %1:addr64bit, 0, $noreg :: (load (s64) from %ir.pending)
CGR %2:gr64bit, %1:addr64bit, implicit-def $cc
BRC 14, 6, %bb.4, implicit $cc
J %bb.3
bb.3.entry.for.end_crit_edge:
; predecessors: %bb.2
successors: %bb.36(0x80000000); %bb.36(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.36
bb.4.for.body.lr.ph:
; predecessors: %bb.2
successors: %bb.5(0x80000000); %bb.5(100.00%)
%16:gr32bit = COPY %15.subreg_l32:gr64bit
%21:gr64bit = LLGFR %16:gr32bit
%22:gr64bit = LGHI 0
$r2d = COPY %22:gr64bit
$r3d = COPY %21:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
%23:gr64bit = LLILF 4294963201
$r2d = COPY %23:gr64bit
$r3d = COPY %21:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
%3:gr64bit = LA %14:addr64bit, 272, $noreg
%25:gr64bit = LLIHH 28
%36:gr64bit = LGHI 4
%37:gr64bit = LGHI 3
%41:gr64bit = LGHI 40
%76:addr64bit = COPY %2:gr64bit
bb.5.for.body:
; predecessors: %bb.4, %bb.34
successors: %bb.6(0x50000000), %bb.7(0x30000000); %bb.6(62.50%), %bb.7(37.50%)
%4:addr64bit = COPY %76:addr64bit
%24:gr64bit = SRLG %4:addr64bit, $noreg, 3
%26:addr64bit = AGRK %24:gr64bit, %25:gr64bit, implicit-def dead $cc
CLI %26:addr64bit, 0, 0, implicit-def $cc :: (load (s8) from %ir.13)
BRC 14, 8, %bb.7, implicit $cc
J %bb.6
bb.6 (%ir-block.16):
; predecessors: %bb.5
successors: %bb.7(0x80000000); %bb.7(100.00%)
$r2d = COPY %4:addr64bit
nomerge CallBRASL @__asan_report_load8_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.7 (%ir-block.18):
; predecessors: %bb.5, %bb.6
successors: %bb.8(0x30000000), %bb.9(0x50000000); %bb.8(37.50%), %bb.9(62.50%)
%5:gr64bit = LAY %4:addr64bit, -64, $noreg
%6:gr64bit = LG %4:addr64bit, 0, $noreg :: (load (s64) from %ir..pn.in55)
CHIMux %16:gr32bit, 0, implicit-def $cc
BRC 14, 6, %bb.9, implicit $cc
J %bb.8
bb.8.for.body.if.end_crit_edge:
; predecessors: %bb.7
successors: %bb.30(0x80000000); %bb.30(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.30
bb.9.cond.false.i:
; predecessors: %bb.7
successors: %bb.10(0x40000000), %bb.11(0x40000000); %bb.10(50.00%), %bb.11(50.00%)
%28:gr64bit = AGHIK %4:addr64bit, -9, implicit-def $cc
%29:addr64bit = COPY %28:gr64bit
INLINEASM &"\09tm\09$1,$2" [sideeffect] [mayload] [maystore] [attdialect], $0:[regdef:GR32Bit], def dead %27:gr32bit, $1:[mem:Q], %29:addr64bit, 0, $noreg, $2:[imm], 2, !4
%74:gr32bit = IPM implicit $cc
%30:gr32bit = COPY %74:gr32bit
%31:gr32bit = IPM implicit $cc
undef %32.subreg_l32:gr64bit = COPY %31:gr32bit
%34:gr64bit = RISBG undef %34:gr64bit(tied-def 0), %32:gr64bit, 60, 191, 36, implicit-def dead $cc
$r2d = COPY %36:gr64bit
$r3d = COPY %34:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$r2d = COPY %37:gr64bit
$r3d = COPY %34:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$cc = COPY %30:gr32bit
BRC 15, 14, %bb.11, implicit $cc
J %bb.10
bb.10.cond.false.i.if.end_crit_edge:
; predecessors: %bb.9
successors: %bb.30(0x80000000); %bb.30(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.30
bb.11.if.end.i:
; predecessors: %bb.9
successors: %bb.12(0x50000000), %bb.13(0x30000000); %bb.12(62.50%), %bb.13(37.50%)
%7:addr64bit = AGHIK %4:addr64bit, -56, implicit-def dead $cc
%38:gr64bit = SRLG %7:addr64bit, $noreg, 3
%40:addr64bit = AGRK %38:gr64bit, %25:gr64bit, implicit-def dead $cc
CLI %40:addr64bit, 0, 0, implicit-def $cc :: (load (s8) from %ir.24)
BRC 14, 8, %bb.13, implicit $cc
J %bb.12
bb.12 (%ir-block.27):
; predecessors: %bb.11
successors: %bb.13(0x80000000); %bb.13(100.00%)
$r2d = COPY %7:addr64bit
nomerge CallBRASL @__asan_report_load8_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.13 (%ir-block.29):
; predecessors: %bb.11, %bb.12
successors: %bb.14(0x50000000), %bb.15(0x30000000); %bb.14(62.50%), %bb.15(37.50%)
%8:addr64bit = COPY %41:gr64bit
%8:addr64bit = AG %8:addr64bit(tied-def 0), %7:addr64bit, 0, $noreg, implicit-def dead $cc :: (load (s64) from %ir.ops.i)
%42:gr64bit = SRLG %8:addr64bit, $noreg, 3
%44:addr64bit = AGRK %42:gr64bit, %25:gr64bit, implicit-def dead $cc
CLI %44:addr64bit, 0, 0, implicit-def $cc :: (load (s8) from %ir.34)
BRC 14, 8, %bb.15, implicit $cc
J %bb.14
bb.14 (%ir-block.37):
; predecessors: %bb.13
successors: %bb.15(0x80000000); %bb.15(100.00%)
$r2d = COPY %8:addr64bit
nomerge CallBRASL @__asan_report_load8_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.15 (%ir-block.39):
; predecessors: %bb.13, %bb.14
successors: %bb.16(0x30000000), %bb.17(0x50000000); %bb.16(37.50%), %bb.17(62.50%)
%9:addr64bit = LG %8:addr64bit, 0, $noreg :: (load (s64) from %ir.signaled.i)
CGHI %9:addr64bit, 0, implicit-def $cc
BRC 14, 6, %bb.17, implicit $cc
J %bb.16
bb.16.if.end.i.cond.false.i45_crit_edge:
; predecessors: %bb.15
successors: %bb.20(0x80000000); %bb.20(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.20
bb.17.land.lhs.true11.i:
; predecessors: %bb.15
successors: %bb.19(0x40000000), %bb.18(0x40000000); %bb.19(50.00%), %bb.18(50.00%)
$r2d = COPY %5:gr64bit
CallBASR %9:addr64bit, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d
%45:gr64bit = COPY $r2d
%46:grx32bit = COPY %45.subreg_l32:gr64bit
CHIMux %46:grx32bit, 0, implicit-def $cc
BRC 14, 6, %bb.19, implicit $cc
J %bb.18
bb.18.land.lhs.true11.i.cond.false.i45_crit_edge:
; predecessors: %bb.17
successors: %bb.20(0x80000000); %bb.20(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.20
bb.19.if.then16.i:
; predecessors: %bb.17
successors: %bb.30(0x80000000); %bb.30(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$r2d = COPY %5:gr64bit
CallBRASL @dma_fence_signal_locked, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def dead $r2d
J %bb.30
bb.20.cond.false.i45:
; predecessors: %bb.18, %bb.16
successors: %bb.22(0x00106035), %bb.21(0x7fef9fcb); %bb.22(0.05%), %bb.21(99.95%)
%50:addr64bit = COPY %28:gr64bit
INLINEASM &"\09tm\09$1,$2" [sideeffect] [mayload] [maystore] [attdialect], $0:[regdef:GR32Bit], def dead %48:gr32bit, $1:[mem:Q], %50:addr64bit, 0, $noreg, $2:[imm], 2, !4
%75:gr32bit = IPM implicit $cc
%51:gr32bit = COPY %75:gr32bit
%52:gr32bit = IPM implicit $cc
undef %53.subreg_l32:gr64bit = COPY %52:gr32bit
%55:gr64bit = RISBG undef %55:gr64bit(tied-def 0), %53:gr64bit, 60, 191, 36, implicit-def dead $cc
$r2d = COPY %36:gr64bit
$r3d = COPY %55:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$r2d = COPY %37:gr64bit
$r3d = COPY %55:gr64bit
CallBRASL @__sanitizer_cov_trace_const_cmp4, $r2d, $r3d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$cc = COPY %51:gr32bit
BRC 15, 1, %bb.22, implicit killed $cc
J %bb.21
bb.21.cond.false.i45.if.else59.i_crit_edge:
; predecessors: %bb.20
successors: %bb.23(0x80000000); %bb.23(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.23
bb.22.do.body26.i:
; predecessors: %bb.20
successors: %bb.23(0x80000000); %bb.23(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
INLINEASM &"0:\09mc\090,0\0A.section .rodata.str,\22aMS\22, at progbits,1\0A1:\09.asciz\09\22include/linux/dma-fence.h\22\0A.previous\0A.section __bug_table,\22aw\22\0A2:\09.long\090b-.\0A\09.long\091b-.\0A\09.short\09$0,$1\0A\09.org\092b+$2\0A.previous\0A" [sideeffect] [mayload] [attdialect], $0:[imm], 585, $1:[imm], 2305, $2:[imm], 12, !6
bb.23.if.else59.i:
; predecessors: %bb.21, %bb.22
successors: %bb.25(0x00106035), %bb.24(0x7fef9fcb); %bb.25(0.05%), %bb.24(99.95%)
CLFIMux %16:gr32bit, 4294963201, implicit-def $cc
BRC 14, 4, %bb.25, implicit killed $cc
J %bb.24
bb.24.if.else59.i.dma_fence_set_error.exit_crit_edge:
; predecessors: %bb.23
successors: %bb.26(0x80000000); %bb.26(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.26
bb.25.do.body70.i:
; predecessors: %bb.23
successors: %bb.26(0x80000000); %bb.26(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
INLINEASM &"0:\09mc\090,0\0A.section .rodata.str,\22aMS\22, at progbits,1\0A1:\09.asciz\09\22include/linux/dma-fence.h\22\0A.previous\0A.section __bug_table,\22aw\22\0A2:\09.long\090b-.\0A\09.long\091b-.\0A\09.short\09$0,$1\0A\09.org\092b+$2\0A.previous\0A" [sideeffect] [mayload] [attdialect], $0:[imm], 586, $1:[imm], 2305, $2:[imm], 12, !7
bb.26.dma_fence_set_error.exit:
; predecessors: %bb.24, %bb.25
successors: %bb.27(0x00000800), %bb.29(0x7ffff800); %bb.27(0.00%), %bb.29(100.00%)
%10:addr64bit = AGHIK %4:addr64bit, -4, implicit-def dead $cc
%59:gr64bit = SRLG %10:addr64bit, $noreg, 3
%61:addr64bit = AGRK %59:gr64bit, %25:gr64bit, implicit-def dead $cc
%11:gr32bit = LBMux %61:addr64bit, 0, $noreg :: (load (s8) from %ir.46)
CHIMux %11:gr32bit, 0, implicit-def $cc
BRC 14, 8, %bb.29, implicit killed $cc
J %bb.27
bb.27 (%ir-block.49):
; predecessors: %bb.26
successors: %bb.28(0x40000000), %bb.29(0x40000000); %bb.28(50.00%), %bb.29(50.00%)
%62:grx32bit = COPY %10.subreg_l32:addr64bit
%63:grx32bit = RISBMux $noreg(tied-def 0), %62:grx32bit, 29, 159, 0
%64:gr32bit = AHIMuxK %63:grx32bit, 3, implicit-def dead $cc
CR %64:gr32bit, %11:gr32bit, implicit-def $cc
BRC 14, 4, %bb.29, implicit killed $cc
J %bb.28
bb.28 (%ir-block.55):
; predecessors: %bb.27
successors: %bb.29(0x80000000); %bb.29(100.00%)
$r2d = COPY %10:addr64bit
nomerge CallBRASL @__asan_report_store4_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.29 (%ir-block.57):
; predecessors: %bb.26, %bb.27, %bb.28
successors: %bb.30(0x80000000); %bb.30(100.00%)
STMux %16:gr32bit, %10:addr64bit, 0, $noreg :: (store (s32) into %ir.error85.i)
bb.30.if.end:
; predecessors: %bb.19, %bb.29, %bb.10, %bb.8
successors: %bb.32(0x40000000), %bb.31(0x40000000); %bb.32(50.00%), %bb.31(50.00%)
$r2d = COPY %5:gr64bit
CallBRASL @nouveau_fence_signal, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d
%65:gr64bit = COPY $r2d
%66:grx32bit = COPY %65.subreg_l32:gr64bit
CHIMux %66:grx32bit, 0, implicit-def $cc
BRC 14, 6, %bb.32, implicit killed $cc
J %bb.31
bb.31.if.end.for.inc_crit_edge:
; predecessors: %bb.30
successors: %bb.33(0x80000000); %bb.33(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
J %bb.33
bb.32.if.then18:
; predecessors: %bb.30
successors: %bb.33(0x80000000); %bb.33(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
$r2d = COPY %3:gr64bit
CallBRASL @nvif_event_block, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def dead $r2d
bb.33.for.inc:
; predecessors: %bb.31, %bb.32
successors: %bb.35(0x04000000), %bb.34(0x7c000000); %bb.35(3.12%), %bb.34(96.88%)
CGR %6:gr64bit, %1:addr64bit, implicit-def $cc
BRC 14, 8, %bb.35, implicit killed $cc
J %bb.34
bb.34.for.inc.for.body_crit_edge:
; predecessors: %bb.33
successors: %bb.5(0x80000000); %bb.5(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
%76:addr64bit = COPY %6:gr64bit
J %bb.5
bb.35.for.inc.for.end_crit_edge:
; predecessors: %bb.33
successors: %bb.36(0x80000000); %bb.36(100.00%)
nomerge CallBRASL @__sanitizer_cov_trace_pc, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.36.for.end:
; predecessors: %bb.35, %bb.3
successors: %bb.37(0x00000800), %bb.39(0x7ffff800); %bb.37(0.00%), %bb.39(100.00%)
%0:gr64bit = COPY %17:gr64bit
%12:gr64bit = LA %14:addr64bit, 344, $noreg
%68:gr64bit = SRLG %12:gr64bit, $noreg, 3
%69:gr64bit = LLIHH 28
%70:addr64bit = AGRK %68:gr64bit, %69:gr64bit, implicit-def dead $cc
%13:gr32bit = LBMux %70:addr64bit, 0, $noreg :: (load (s8) from %ir.61)
CHIMux %13:gr32bit, 0, implicit-def $cc
BRC 14, 8, %bb.39, implicit killed $cc
J %bb.37
bb.37 (%ir-block.64):
; predecessors: %bb.36
successors: %bb.38(0x40000000), %bb.39(0x40000000); %bb.38(50.00%), %bb.39(50.00%)
%71:grx32bit = COPY %12.subreg_l32:gr64bit
%72:grx32bit = RISBMux $noreg(tied-def 0), %71:grx32bit, 29, 159, 0
%73:gr32bit = AHIMuxK %72:grx32bit, 3, implicit-def dead $cc
CR %73:gr32bit, %13:gr32bit, implicit-def $cc
BRC 14, 4, %bb.39, implicit killed $cc
J %bb.38
bb.38 (%ir-block.70):
; predecessors: %bb.37
successors: %bb.39(0x80000000); %bb.39(100.00%)
$r2d = COPY %12:gr64bit
nomerge CallBRASL @__asan_report_store4_noabort, $r2d, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc
bb.39 (%ir-block.72):
; predecessors: %bb.36, %bb.37, %bb.38
MVHI %14:addr64bit, 344, 1 :: (store (s32) into %ir.sunkaddr, align 8)
$r2d = COPY %14:addr64bit
$r3d = COPY %0:gr64bit
CallJG @_raw_spin_unlock_irqrestore, <regmask $f8d $f9d $f10d $f11d $f12d $f13d $f14d $f15d $f8h $f9h $f10h $f11h $f12h $f13h $f14h $f15h $f8q $f9q $f12q $f13q $f8s $f9s $f10s $f11s $f12s $f13s $f14s $f15s $r6d $r7d $r8d $r9d $r10d and 30 more...>, implicit $r2d, implicit $r3d
# End machine code for function nouveau_fence_context_kill.
*** Bad machine code: Using an undefined physical register ***
- function: nouveau_fence_context_kill
- basic block: %bb.20 cond.false.i45 (0x5559e7064b80)
- instruction: %75:gr32bit = IPM implicit $cc
- operand 1: implicit $cc
*** Bad machine code: Using an undefined physical register ***
- function: nouveau_fence_context_kill
- basic block: %bb.20 cond.false.i45 (0x5559e7064b80)
- instruction: %52:gr32bit = IPM implicit $cc
- operand 1: implicit $cc
fatal error: error in backend: Found 2 machine code errors.
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: clang ... -o drivers/gpu/drm/nouveau/nouveau_fence.o drivers/gpu/drm/nouveau/nouveau_fence.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'drivers/gpu/drm/nouveau/nouveau_fence.c'.
4. Running pass 'Live Interval Analysis' on function '@nouveau_fence_context_kill'
#0 0x00005559dd792528 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (clang+0x36fa528)
#1 0x00005559dd78fca5 llvm::sys::RunSignalHandlers() (clang+0x36f7ca5)
#2 0x00005559dd711e47 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x00005559dd711ddf llvm::CrashRecoveryContext::HandleExit(int) (clang+0x3679ddf)
#4 0x00005559dd78c767 llvm::sys::Process::Exit(int, bool) (clang+0x36f4767)
#5 0x00005559dc3cb136 (clang+0x2333136)
#6 0x00005559dd718206 llvm::report_fatal_error(llvm::Twine const&, bool) (clang+0x3680206)
#7 0x00005559dcdaa41e (clang+0x2d1241e)
#8 0x00005559dcdaaa86 llvm::MachineFunction::verify(llvm::Pass*, char const*, llvm::raw_ostream*, bool) const (clang+0x2d12a86)
#9 0x00005559dcc43cc2 llvm::LiveRangeCalc::findReachingDefs(llvm::LiveRange&, llvm::MachineBasicBlock&, llvm::SlotIndex, llvm::Register, llvm::ArrayRef<llvm::SlotIndex>) (clang+0x2babcc2)
#10 0x00005559dcc42f5b llvm::LiveRangeCalc::extend(llvm::LiveRange&, llvm::SlotIndex, llvm::Register, llvm::ArrayRef<llvm::SlotIndex>) (clang+0x2baaf5b)
#11 0x00005559dcc46d19 llvm::LiveIntervalCalc::extendToUses(llvm::LiveRange&, llvm::Register, llvm::LaneBitmask, llvm::LiveInterval*) (clang+0x2baed19)
#12 0x00005559dcc2ee43 llvm::LiveIntervals::computeRegUnitRange(llvm::LiveRange&, unsigned int) (clang+0x2b96e43)
#13 0x00005559dcc2e1af llvm::LiveIntervals::computeLiveInRegUnits() (clang+0x2b961af)
#14 0x00005559dcc2caff llvm::LiveIntervals::analyze(llvm::MachineFunction&) (clang+0x2b94aff)
#15 0x00005559dcc2c8ac llvm::LiveIntervalsWrapperPass::runOnMachineFunction(llvm::MachineFunction&) (clang+0x2b948ac)
#16 0x00005559dccdff23 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (clang+0x2c47f23)
#17 0x00005559dd278cb8 llvm::FPPassManager::runOnFunction(llvm::Function&) (clang+0x31e0cb8)
#18 0x00005559dd2803d2 llvm::FPPassManager::runOnModule(llvm::Module&) (clang+0x31e83d2)
#19 0x00005559dd2796a0 llvm::legacy::PassManagerImpl::run(llvm::Module&) (clang+0x31e16a0)
#20 0x00005559ddeed7de clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (clang+0x3e557de)
#21 0x00005559ddf03008 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (clang+0x3e6b008)
#22 0x00005559df505819 clang::ParseAST(clang::Sema&, bool, bool) (clang+0x546d819)
#23 0x00005559de3ffb16 clang::FrontendAction::Execute() (clang+0x4367b16)
#24 0x00005559de3687cd clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (clang+0x42d07cd)
#25 0x00005559de4d7775 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (clang+0x443f775)
#26 0x00005559dc3caa77 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (clang+0x2332a77)
#27 0x00005559dc3c6875 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) driver.cpp:0:0
#28 0x00005559dc3c8e4d int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x00005559de1cda69 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#30 0x00005559dd711d7e llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (clang+0x3679d7e)
#31 0x00005559de1cd2a3 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (clang+0x41352a3)
#32 0x00005559de18eadc clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (clang+0x40f6adc)
#33 0x00005559de18ecf7 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (clang+0x40f6cf7)
#34 0x00005559de1a8578 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (clang+0x4110578)
#35 0x00005559dc3c6130 clang_main(int, char**, llvm::ToolContext const&) (clang+0x232e130)
#36 0x00005559dc3d6247 main (clang+0x233e247)
#37 0x00007f2cc3027635 (/usr/lib/libc.so.6+0x27635)
#38 0x00007f2cc30276e9 __libc_start_main (/usr/lib/libc.so.6+0x276e9)
#39 0x00005559dc3c42e5 _start (clang+0x232c2e5)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
ClangBuiltLinux clang version 22.0.0git (https://github.com/llvm/llvm-project.git 097f1e7625966673b881df63a241f755317b0bb9)
...
```
`cvise` spits out:
```c
int arch_test_bit_cc, nouveau_fence_wait_legacy_fence;
long jiffies, nouveau_fence_wait_legacy_wait;
long nouveau_fence_wait_legacy() {
long t = jiffies, timeout = nouveau_fence_wait_legacy_wait;
while (nouveau_fence_wait_legacy_fence)
asm("" : "=@cc"(arch_test_bit_cc));
return timeout - t;
}
```
```
$ clang --target=s390x-linux-gnu -c -o /dev/null nouveau_fence.i
$ clang --target=s390x-linux-gnu -O2 -c -o /dev/null nouveau_fence.i
# Machine code for function nouveau_fence_wait_legacy: NoPHIs, TracksLiveness, TiedOpsRewritten
Function Live Ins: $cc
bb.0.entry:
successors: %bb.3(0x30000000), %bb.1(0x50000000); %bb.3(37.50%), %bb.1(62.50%)
liveins: $cc
%0:addr64bit = LARL @nouveau_fence_wait_legacy_fence
CHSI %0:addr64bit, 0, 0, implicit-def $cc :: (dereferenceable load (s32) from @nouveau_fence_wait_legacy_fence, !tbaa !4)
BRC 14, 8, %bb.3, implicit $cc
J %bb.1
bb.1.while.body.lr.ph:
; predecessors: %bb.0
successors: %bb.2(0x80000000); %bb.2(100.00%)
INLINEASM &"" [maystore] [attdialect], $0:[regdef:GR32Bit], def dead %1:gr32bit, !8
%2:gr32bit = IPM implicit $cc
%3:gr32bit = COPY %2:gr32bit
%3:gr32bit = SRL %3:gr32bit(tied-def 0), $noreg, 28
STRL %3:gr32bit, @arch_test_bit_cc :: (store (s32) into @arch_test_bit_cc, !tbaa !4)
bb.2.while.body:
; predecessors: %bb.1, %bb.2
successors: %bb.2(0x80000000); %bb.2(100.00%)
J %bb.2
bb.3.while.end:
; predecessors: %bb.0
%4:gr64bit = LGRL @nouveau_fence_wait_legacy_wait :: (dereferenceable load (s64) from @nouveau_fence_wait_legacy_wait, !tbaa !9)
%5:addr64bit = LARL @jiffies
%6:gr64bit = COPY %4:gr64bit
%6:gr64bit = nsw SG %6:gr64bit(tied-def 0), %5:addr64bit, 0, $noreg, implicit-def dead $cc :: (dereferenceable load (s64) from @jiffies, !tbaa !9)
$r2d = COPY %6:gr64bit
Return implicit killed $r2d
# End machine code for function nouveau_fence_wait_legacy.
*** Bad machine code: Using an undefined physical register ***
- function: nouveau_fence_wait_legacy
- basic block: %bb.1 while.body.lr.ph (0x55dba4f72718)
- instruction: %2:gr32bit = IPM implicit $cc
- operand 1: implicit $cc
fatal error: error in backend: Found 1 machine code errors.
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: clang --target=s390x-linux-gnu -O2 -c -o /dev/null nouveau_fence.i
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'nouveau_fence.i'.
4. Running pass 'Live Interval Analysis' on function '@nouveau_fence_wait_legacy'
#0 0x000055db9b16c2b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (clang-22+0x36f42b8)
#1 0x000055db9b169a35 llvm::sys::RunSignalHandlers() (clang-22+0x36f1a35)
#2 0x000055db9b0ebb97 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) CrashRecoveryContext.cpp:0:0
#3 0x000055db9b0ebb2f llvm::CrashRecoveryContext::HandleExit(int) (clang-22+0x3673b2f)
#4 0x000055db9b1664f7 llvm::sys::Process::Exit(int, bool) (clang-22+0x36ee4f7)
#5 0x000055db99da40c6 (clang-22+0x232c0c6)
#6 0x000055db9b0f1f56 llvm::report_fatal_error(llvm::Twine const&, bool) (clang-22+0x3679f56)
#7 0x000055db9a783e5e (clang-22+0x2d0be5e)
#8 0x000055db9a7844c6 llvm::MachineFunction::verify(llvm::Pass*, char const*, llvm::raw_ostream*, bool) const (clang-22+0x2d0c4c6)
#9 0x000055db9a61d5c2 llvm::LiveRangeCalc::findReachingDefs(llvm::LiveRange&, llvm::MachineBasicBlock&, llvm::SlotIndex, llvm::Register, llvm::ArrayRef<llvm::SlotIndex>) (clang-22+0x2ba55c2)
#10 0x000055db9a61c85b llvm::LiveRangeCalc::extend(llvm::LiveRange&, llvm::SlotIndex, llvm::Register, llvm::ArrayRef<llvm::SlotIndex>) (clang-22+0x2ba485b)
#11 0x000055db9a620629 llvm::LiveIntervalCalc::extendToUses(llvm::LiveRange&, llvm::Register, llvm::LaneBitmask, llvm::LiveInterval*) (clang-22+0x2ba8629)
#12 0x000055db9a6087b3 llvm::LiveIntervals::computeRegUnitRange(llvm::LiveRange&, unsigned int) (clang-22+0x2b907b3)
#13 0x000055db9a607b1f llvm::LiveIntervals::computeLiveInRegUnits() (clang-22+0x2b8fb1f)
#14 0x000055db9a60646f llvm::LiveIntervals::analyze(llvm::MachineFunction&) (clang-22+0x2b8e46f)
#15 0x000055db9a60621c llvm::LiveIntervalsWrapperPass::runOnMachineFunction(llvm::MachineFunction&) (clang-22+0x2b8e21c)
#16 0x000055db9a6b9903 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (clang-22+0x2c41903)
#17 0x000055db9ac52a48 llvm::FPPassManager::runOnFunction(llvm::Function&) (clang-22+0x31daa48)
#18 0x000055db9ac5a162 llvm::FPPassManager::runOnModule(llvm::Module&) (clang-22+0x31e2162)
#19 0x000055db9ac53430 llvm::legacy::PassManagerImpl::run(llvm::Module&) (clang-22+0x31db430)
#20 0x000055db9b8c473e clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) (clang-22+0x3e4c73e)
#21 0x000055db9b8d9f68 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (clang-22+0x3e61f68)
#22 0x000055db9cee0559 clang::ParseAST(clang::Sema&, bool, bool) (clang-22+0x5468559)
#23 0x000055db9bdd6b16 clang::FrontendAction::Execute() (clang-22+0x435eb16)
#24 0x000055db9bd3f77d clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (clang-22+0x42c777d)
#25 0x000055db9beaec05 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (clang-22+0x4436c05)
#26 0x000055db99da3a07 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (clang-22+0x232ba07)
#27 0x000055db99d9f7f5 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>) driver.cpp:0:0
#28 0x000055db99da1ddd int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#29 0x000055db9bba4b69 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0>(long) Job.cpp:0:0
#30 0x000055db9b0ebace llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (clang-22+0x3673ace)
#31 0x000055db9bba43a3 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (clang-22+0x412c3a3)
#32 0x000055db9bb65b2c clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (clang-22+0x40edb2c)
#33 0x000055db9bb65d47 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (clang-22+0x40edd47)
#34 0x000055db9bb7f5f8 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (clang-22+0x41075f8)
#35 0x000055db99d9f0b0 clang_main(int, char**, llvm::ToolContext const&) (clang-22+0x23270b0)
#36 0x000055db99daf1d7 main (clang-22+0x23371d7)
#37 0x00007f45f4827635 (/usr/lib/libc.so.6+0x27635)
#38 0x00007f45f48276e9 __libc_start_main (/usr/lib/libc.so.6+0x276e9)
#39 0x000055db99d9d265 _start (clang-22+0x2325265)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
ClangBuiltLinux clang version 22.0.0git (https://github.com/llvm/llvm-project.git 6712e20c5261376a6b0015fb3c8d15124757d47d)
...
```
https://github.com/llvm/llvm-project/pull/125970
More information about the cfe-commits
mailing list