Skip to content

[ScheduleDAGFast] Fix crash due to incorrect live reg delay in fast scheduler - #200567

Open
TianYe717 wants to merge 2 commits into
llvm:mainfrom
TianYe717:fix-fast-sched
Open

[ScheduleDAGFast] Fix crash due to incorrect live reg delay in fast scheduler#200567
TianYe717 wants to merge 2 commits into
llvm:mainfrom
TianYe717:fix-fast-sched

Conversation

@TianYe717

@TianYe717 TianYe717 commented May 30, 2026

Copy link
Copy Markdown
Contributor

Fixes #130730

When using -pre-RA-sched=fast, the scheduler could crash with an assertion "!AnyNotSched" when scheduling a chain of instructions that produce and consume EFLAGS `

DelayForLiveRegsBottomUp incorrectly delays SBB32ri because its predecessor BT32ri8 also touches EFLAGS, but SBB32ri itself is the live EFLAGS definition — it should never have been delayed. This triggers backtracking which inserts PHYS REG COPY nodes. The newly added artificial edges create a dependency cycle between SBB32ri and the copies, leaving no available nodes in the ready queue. The scheduler exits the main loop prematurely, and verification finds unscheduled nodes, which causes crash.

For this case:

define i1 @Perl_pp_match(i32 %0) {
entry:
  %and176 = lshr i32 %0, 1
  %and176.lobit = and i32 %and176, 1
  %cmp179 = icmp eq i32 %0, %and176.lobit
  ret i1 %cmp179
}

Before:

	.att_syntax
	.file	"short_reproduce.ll"
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.	Program arguments: ./llc -mtriple=x86_64-unknown-linux-gnu -pre-RA-sched=fast /home/tian/git_repo/demo/spec/short_reproduce.ll -o - -O3
1.	Running pass 'Function Pass Manager' on module '/home/tian/git_repo/demo/spec/short_reproduce.ll'.
2.	Running pass 'X86 DAG->DAG Instruction Selection' on function '@Perl_pp_match'
 #0 0x000071f4297995a7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/tian/zero_repo/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:13
 #1 0x000071f4297972d3 llvm::sys::RunSignalHandlers() /home/tian/zero_repo/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #2 0x000071f42979a365 SignalHandler(int, siginfo_t*, void*) /home/tian/zero_repo/llvm-project/llvm/lib/Support/Unix/Signals.inc:448:38
 #3 0x000071f428e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x000071f42b158b5c llvm::MachineRegisterInfo::addRegOperandToUseList(llvm::MachineOperand*) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineRegisterInfo.cpp:274:32
 #5 0x000071f42b0d9184 llvm::MachineInstr::addOperand(llvm::MachineFunction&, llvm::MachineOperand const&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp:0:12
 #6 0x000071f42b72ee44 llvm::TrackingMDRef::untrack() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:89:9
 #7 0x000071f42b72ee44 llvm::TrackingMDRef::~TrackingMDRef() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:55:22
 #8 0x000071f42b72ee44 llvm::TypedTrackingMDRef<llvm::MDNode>::~TypedTrackingMDRef() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:106:26
 #9 0x000071f42b72ee44 llvm::DebugLoc::~DebugLoc() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/DebugLoc.h:123:7
#10 0x000071f42b72ee44 llvm::MIMetadata::~MIMetadata() /home/tian/zero_repo/llvm-project/llvm/include/llvm/CodeGen/MachineInstrBuilder.h:133:7
#11 0x000071f42b72ee44 llvm::InstrEmitter::EmitSpecialNode(llvm::SDNode*, bool, bool, llvm::SmallDenseMap<llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:1298:5
#12 0x000071f42b7ff2eb llvm::InstrEmitter::EmitNode(llvm::SDNode*, bool, bool, llvm::SmallDenseMap<llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h:0:7
#13 0x000071f42b7ff2eb llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&)::$_1::operator()(llvm::SDNode*, bool, bool, llvm::SmallDenseMap<llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo<llvm::SDValue, void>, llvm::detail::DenseMapPair<llvm::SDValue, llvm::Register>>&) const /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:871:13
#14 0x000071f42b7fe9de llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator<llvm::MachineInstr, false>&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:951:22
#15 0x000071f42b8b4df9 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1196:42
#16 0x000071f42b8b449a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1691:8
#17 0x000071f42b8b23d1 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:660:7
#18 0x000071f42b8b0851 llvm::OptLevelChanger::~OptLevelChanger() /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:286:11
#19 0x000071f42b8b0851 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:402:1
#20 0x000071f42b0d292b llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:112:10
#21 0x000071f429bf349e llvm::FPPassManager::runOnFunction(llvm::Function&) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1390:27
#22 0x000071f429bf8393 llvm::FPPassManager::runOnModule(llvm::Module&) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1436:13
#23 0x000071f429bf3add (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:0:27
#24 0x000071f429bf3add llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:531:44
#25 0x00005965ba895f58 compileModule(char**, llvm::SmallVectorImpl<llvm::PassPlugin>&, llvm::LLVMContext&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /home/tian/zero_repo/llvm-project/llvm/tools/llc/llc.cpp:882:17
#26 0x00005965ba895f58 main /home/tian/zero_repo/llvm-project/llvm/tools/llc/llc.cpp:460:22
#27 0x000071f428e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#28 0x000071f428e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#29 0x00005965ba88ff45 _start (./llc+0xcf45)
Segmentation fault (core dumped)

After:
This result is the same as that of linearize and list-hybrid.

	.att_syntax
	.file	"short_reproduce.ll"
	.text
	.globl	Perl_pp_match                   # -- Begin function Perl_pp_match
	.prefalign	4, .Lfunc_end0, nop
	.type	Perl_pp_match,@function
Perl_pp_match:                          # @Perl_pp_match
	.cfi_startproc
# %bb.0:                                # %entry
	btl	$1, %edi
	sbbl	$0, %edi
	sete	%al
	retq
.Lfunc_end0:
	.size	Perl_pp_match, .Lfunc_end0-Perl_pp_match
	.cfi_endproc
                                        # -- End function
	.section	".note.GNU-stack","",@progbits

Test:
Added llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll which reproduces the crash with -verify-machineinstrs -pre-RA-sched=fast.

@llvmorg-github-actions

llvmorg-github-actions Bot commented May 30, 2026

Copy link
Copy Markdown

@llvm/pr-subscribers-llvm-selectiondag

@llvm/pr-subscribers-backend-x86

Author: Ye Tian (TianYe717)

Changes

Fixes #130730

When using -pre-RA-sched=fast, the scheduler could crash with an assertion "!AnyNotSched" when scheduling a chain of instructions that produce and consume EFLAGS `

DelayForLiveRegsBottomUp incorrectly delays SBB32ri because its predecessor BT32ri8 also touches EFLAGS, but SBB32ri itself is the live EFLAGS definition — it should never have been delayed. This triggers backtracking which inserts PHYS REG COPY nodes. The newly added artificial edges create a dependency cycle between SBB32ri and the copies, leaving no available nodes in the ready queue. The scheduler exits the main loop prematurely, and verification finds unscheduled nodes, which causes crash.

For this case:

define i1 @<!-- -->Perl_pp_match(i32 %0) {
entry:
  %and176 = lshr i32 %0, 1
  %and176.lobit = and i32 %and176, 1
  %cmp179 = icmp eq i32 %0, %and176.lobit
  ret i1 %cmp179
}

Before:

	.att_syntax
	.file	"short_reproduce.ll"
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
Stack dump:
0.	Program arguments: ./llc -mtriple=x86_64-unknown-linux-gnu -pre-RA-sched=fast /home/tian/git_repo/demo/spec/short_reproduce.ll -o - -O3
1.	Running pass 'Function Pass Manager' on module '/home/tian/git_repo/demo/spec/short_reproduce.ll'.
2.	Running pass 'X86 DAG-&gt;DAG Instruction Selection' on function '@<!-- -->Perl_pp_match'
 #<!-- -->0 0x000071f4297995a7 llvm::sys::PrintStackTrace(llvm::raw_ostream&amp;, int) /home/tian/zero_repo/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:13
 #<!-- -->1 0x000071f4297972d3 llvm::sys::RunSignalHandlers() /home/tian/zero_repo/llvm-project/llvm/lib/Support/Signals.cpp:109:18
 #<!-- -->2 0x000071f42979a365 SignalHandler(int, siginfo_t*, void*) /home/tian/zero_repo/llvm-project/llvm/lib/Support/Unix/Signals.inc:448:38
 #<!-- -->3 0x000071f428e42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #<!-- -->4 0x000071f42b158b5c llvm::MachineRegisterInfo::addRegOperandToUseList(llvm::MachineOperand*) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineRegisterInfo.cpp:274:32
 #<!-- -->5 0x000071f42b0d9184 llvm::MachineInstr::addOperand(llvm::MachineFunction&amp;, llvm::MachineOperand const&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineInstr.cpp:0:12
 #<!-- -->6 0x000071f42b72ee44 llvm::TrackingMDRef::untrack() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:89:9
 #<!-- -->7 0x000071f42b72ee44 llvm::TrackingMDRef::~TrackingMDRef() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:55:22
 #<!-- -->8 0x000071f42b72ee44 llvm::TypedTrackingMDRef&lt;llvm::MDNode&gt;::~TypedTrackingMDRef() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/TrackingMDRef.h:106:26
 #<!-- -->9 0x000071f42b72ee44 llvm::DebugLoc::~DebugLoc() /home/tian/zero_repo/llvm-project/llvm/include/llvm/IR/DebugLoc.h:123:7
#<!-- -->10 0x000071f42b72ee44 llvm::MIMetadata::~MIMetadata() /home/tian/zero_repo/llvm-project/llvm/include/llvm/CodeGen/MachineInstrBuilder.h:133:7
#<!-- -->11 0x000071f42b72ee44 llvm::InstrEmitter::EmitSpecialNode(llvm::SDNode*, bool, bool, llvm::SmallDenseMap&lt;llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo&lt;llvm::SDValue, void&gt;, llvm::detail::DenseMapPair&lt;llvm::SDValue, llvm::Register&gt;&gt;&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:1298:5
#<!-- -->12 0x000071f42b7ff2eb llvm::InstrEmitter::EmitNode(llvm::SDNode*, bool, bool, llvm::SmallDenseMap&lt;llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo&lt;llvm::SDValue, void&gt;, llvm::detail::DenseMapPair&lt;llvm::SDValue, llvm::Register&gt;&gt;&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h:0:7
#<!-- -->13 0x000071f42b7ff2eb llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator&lt;llvm::MachineInstr, false&gt;&amp;)::$_1::operator()(llvm::SDNode*, bool, bool, llvm::SmallDenseMap&lt;llvm::SDValue, llvm::Register, 16u, llvm::DenseMapInfo&lt;llvm::SDValue, void&gt;, llvm::detail::DenseMapPair&lt;llvm::SDValue, llvm::Register&gt;&gt;&amp;) const /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:871:13
#<!-- -->14 0x000071f42b7fe9de llvm::ScheduleDAGSDNodes::EmitSchedule(llvm::MachineInstrBundleIterator&lt;llvm::MachineInstr, false&gt;&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:951:22
#<!-- -->15 0x000071f42b8b4df9 llvm::SelectionDAGISel::CodeGenAndEmitDAG() /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1196:42
#<!-- -->16 0x000071f42b8b449a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1691:8
#<!-- -->17 0x000071f42b8b23d1 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:660:7
#<!-- -->18 0x000071f42b8b0851 llvm::OptLevelChanger::~OptLevelChanger() /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:286:11
#<!-- -->19 0x000071f42b8b0851 llvm::SelectionDAGISelLegacy::runOnMachineFunction(llvm::MachineFunction&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:402:1
#<!-- -->20 0x000071f42b0d292b llvm::MachineFunctionPass::runOnFunction(llvm::Function&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:112:10
#<!-- -->21 0x000071f429bf349e llvm::FPPassManager::runOnFunction(llvm::Function&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1390:27
#<!-- -->22 0x000071f429bf8393 llvm::FPPassManager::runOnModule(llvm::Module&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1436:13
#<!-- -->23 0x000071f429bf3add (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:0:27
#<!-- -->24 0x000071f429bf3add llvm::legacy::PassManagerImpl::run(llvm::Module&amp;) /home/tian/zero_repo/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:531:44
#<!-- -->25 0x00005965ba895f58 compileModule(char**, llvm::SmallVectorImpl&lt;llvm::PassPlugin&gt;&amp;, llvm::LLVMContext&amp;, std::__cxx11::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt;&gt;&amp;) /home/tian/zero_repo/llvm-project/llvm/tools/llc/llc.cpp:882:17
#<!-- -->26 0x00005965ba895f58 main /home/tian/zero_repo/llvm-project/llvm/tools/llc/llc.cpp:460:22
#<!-- -->27 0x000071f428e29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#<!-- -->28 0x000071f428e29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#<!-- -->29 0x00005965ba88ff45 _start (./llc+0xcf45)
Segmentation fault (core dumped)

After:
This result is the same as that of linearize and list-hybrid.

	.att_syntax
	.file	"short_reproduce.ll"
	.text
	.globl	Perl_pp_match                   # -- Begin function Perl_pp_match
	.prefalign	4, .Lfunc_end0, nop
	.type	Perl_pp_match,@<!-- -->function
Perl_pp_match:                          # @<!-- -->Perl_pp_match
	.cfi_startproc
# %bb.0:                                # %entry
	btl	$16, %edi
	sbbl	$0, %edi
	sete	%al
	retq
.Lfunc_end0:
	.size	Perl_pp_match, .Lfunc_end0-Perl_pp_match
	.cfi_endproc
                                        # -- End function
	.section	".note.GNU-stack","",@<!-- -->progbits

Test:
Added llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll which reproduces the crash with -verify-machineinstrs -pre-RA-sched=fast.


Full diff: https://github.com/llvm/llvm-project/pull/200567.diff

2 Files Affected:

  • (modified) llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp (+2)
  • (added) llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll (+22)
diff --git a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
index 9b76ebdb0f8fa..9b9a6798b013b 100644
--- a/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
@@ -471,6 +471,8 @@ bool ScheduleDAGFast::DelayForLiveRegsBottomUp(SUnit *SU,
   // If this node would clobber any "live" register, then it's not ready.
   for (SDep &Pred : SU->Preds) {
     if (Pred.isAssignedRegDep()) {
+      if (LiveRegDefs[Pred.getReg()] == SU)
+        continue;
       CheckForLiveRegDef(Pred.getSUnit(), Pred.getReg(), LiveRegDefs,
                          RegAdded, LRegs, TRI);
     }
diff --git a/llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll b/llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll
new file mode 100644
index 0000000000000..b5dfe6476e5b0
--- /dev/null
+++ b/llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll
@@ -0,0 +1,22 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -mtriple=x86_64-unknown-linux-gnu -verify-machineinstrs -pre-RA-sched=fast -O3 %s -o - | FileCheck %s
+
+; Test that the fast scheduler correctly handles the case where a node being
+; scheduled is itself the live physical register definition (EFLAGS). Previously,
+; DelayForLiveRegsBottomUp would incorrectly delay such a node, leading to an
+; infinite loop of register copy insertion and a scheduling failure assertion.
+
+define i1 @Perl_pp_match(i32 %0) {
+; CHECK-LABEL: Perl_pp_match:
+; CHECK:       .cfi_startproc
+; CHECK-NEXT:  # %bb.0:
+; CHECK-NEXT:    btl $1, %edi
+; CHECK-NEXT:    sbbl $0, %edi
+; CHECK-NEXT:    sete %al
+; CHECK-NEXT:    retq
+entry:
+  %and176 = lshr i32 %0, 1
+  %and176.lobit = and i32 %and176, 1
+  %cmp179 = icmp eq i32 %0, %and176.lobit
+  ret i1 %cmp179
+}

@TianYe717

Copy link
Copy Markdown
Contributor Author

Ping

Comment thread llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll Outdated

@RKSimon RKSimon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few minors

// If this node would clobber any "live" register, then it's not ready.
for (SDep &Pred : SU->Preds) {
if (Pred.isAssignedRegDep()) {
if (LiveRegDefs[Pred.getReg()] == SU)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comment

Comment thread llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll Outdated
Comment thread llvm/test/CodeGen/X86/fast-sched-eflags-live-def.ll Outdated
Comment thread llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
@RKSimon
RKSimon self-requested a review June 23, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:X86 llvm:SelectionDAG SelectionDAGISel as well

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[X86][Codegen] Scheduling DAG assertion failure with -pre-RA-sched=fast

3 participants