Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -895,11 +895,9 @@ bool RISCVRegisterInfo::getRegAllocationHints(
// Check if this register matches the even/odd requirement
bool IsOdd = (RegNum % 2 != 0);

// Verify the pair register exists and is in the same register class
// TODO: Skip unallocatable registers: we need to prevent any of odd/even
// to be reserved, so if we need odd, we need to check if corresponding
// even is preserved, vice versa.
if ((WantOdd && IsOdd) || (!WantOdd && !IsOdd))
// Don't provide hints that are paired to a reserved register.
MCRegister Paired = PhysReg + (IsOdd ? -1 : 1);
if (WantOdd == IsOdd && !MRI->isReserved(Paired))
Hints.push_back(PhysReg);
}
}
Expand Down