[llvm] [GlobalISel] Use named constant for impossible repair cost (PR #180490)
Eliz Habiboullah via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 9 01:13:10 PST 2026
https://github.com/elizhabiboullah created https://github.com/llvm/llvm-project/pull/180490
replace magic value `std::numeric_limits<unsigned>::max()` with a named constant `ImpossibleRepairCost` to improve readability
>From 809528292ac125bd6785f7dab63905f9da756280 Mon Sep 17 00:00:00 2001
From: Eliz Habiboullah <eliz4ads at gmail.com>
Date: Mon, 9 Feb 2026 14:09:24 +0800
Subject: [PATCH] [GlobalISel] Use named constant for impossible repair cost
---
llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
index 5db631be32acd..4dfd5179a4e56 100644
--- a/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
@@ -51,6 +51,12 @@
using namespace llvm;
+/// Cost value representing an impossible or invalid repairing.
+/// This matches the value returned by RegisterBankInfo::copyCost() and
+/// RegisterBankInfo::getBreakDownCost() when the cost cannot be computed.
+static constexpr unsigned ImpossibleRepairCost =
+ std::numeric_limits<unsigned>::max();
+
static cl::opt<RegBankSelect::Mode> RegBankSelectMode(
cl::desc("Mode of the RegBankSelect pass"), cl::Hidden, cl::Optional,
cl::values(clEnumValN(RegBankSelect::Mode::Fast, "regbankselect-fast",
@@ -278,12 +284,11 @@ uint64_t RegBankSelect::getRepairCost(
// repairing placement.
unsigned Cost = RBI->copyCost(*DesiredRegBank, *CurRegBank,
RBI->getSizeInBits(MO.getReg(), *MRI, *TRI));
- // TODO: use a dedicated constant for ImpossibleCost.
- if (Cost != std::numeric_limits<unsigned>::max())
+ if (Cost != ImpossibleRepairCost)
return Cost;
// Return the legalization cost of that repairing.
}
- return std::numeric_limits<unsigned>::max();
+ return ImpossibleRepairCost;
}
const RegisterBankInfo::InstructionMapping &RegBankSelect::findBestMapping(
@@ -535,7 +540,7 @@ RegBankSelect::MappingCost RegBankSelect::computeMapping(
uint64_t RepairCost = getRepairCost(MO, ValMapping);
// This is an impossible to repair cost.
- if (RepairCost == std::numeric_limits<unsigned>::max())
+ if (RepairCost == ImpossibleRepairCost)
return MappingCost::ImpossibleCost();
// Bias used for splitting: 5%.
More information about the llvm-commits
mailing list