[llvm] [VPlan] Add the cost of spills when considering register pressure (PR #179646)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 11 07:13:32 PST 2026


================
@@ -389,13 +390,33 @@ bool VPDominatorTree::properlyDominates(const VPRecipeBase *A,
   return Base::properlyDominates(ParentA, ParentB);
 }
 
-bool VPRegisterUsage::exceedsMaxNumRegs(const TargetTransformInfo &TTI,
-                                        unsigned OverrideMaxNumRegs) const {
-  return any_of(MaxLocalUsers, [&TTI, &OverrideMaxNumRegs](auto &LU) {
-    return LU.second > (OverrideMaxNumRegs > 0
-                            ? OverrideMaxNumRegs
-                            : TTI.getNumberOfRegisters(LU.first));
-  });
+InstructionCost VPRegisterUsage::spillCost(VPCostContext &Ctx,
+                                           unsigned OverrideMaxNumRegs) const {
+  InstructionCost Cost;
+  DataLayout DL = Ctx.PSE.getSE()->getDataLayout();
+  for (const auto &Pair : MaxLocalUsers) {
----------------
lukel97 wrote:

You could use structured bindings here
```suggestion
  for (const auto [RegClass, MaxUsers] : MaxLocalUsers) {
```

https://github.com/llvm/llvm-project/pull/179646


More information about the llvm-commits mailing list