[llvm] [VPlan] Add transform to replace VPWidenCanonicalIV with wide IV. (PR #194267)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Sun Apr 26 23:57:10 PDT 2026
================
@@ -392,24 +392,26 @@ bool VPDominatorTree::properlyDominates(const VPRecipeBase *A,
return Base::properlyDominates(ParentA, ParentB);
}
-InstructionCost VPRegisterUsage::spillCost(VPCostContext &Ctx,
- unsigned OverrideMaxNumRegs) const {
+InstructionCost
+VPRegisterUsage::spillCost(const TargetTransformInfo &TTI,
+ TargetTransformInfo::TargetCostKind CostKind,
+ unsigned OverrideMaxNumRegs) const {
InstructionCost Cost;
for (const auto &[RegClass, MaxUsers] : MaxLocalUsers) {
unsigned AvailableRegs = OverrideMaxNumRegs > 0
? OverrideMaxNumRegs
- : Ctx.TTI.getNumberOfRegisters(RegClass);
+ : TTI.getNumberOfRegisters(RegClass);
if (MaxUsers > AvailableRegs) {
// Assume that for each register used past what's available we get one
// spill and reload.
unsigned Spills = MaxUsers - AvailableRegs;
InstructionCost SpillCost =
- Ctx.TTI.getRegisterClassSpillCost(RegClass, Ctx.CostKind) +
- Ctx.TTI.getRegisterClassReloadCost(RegClass, Ctx.CostKind);
+ TTI.getRegisterClassSpillCost(RegClass, CostKind) +
+ TTI.getRegisterClassReloadCost(RegClass, CostKind);
InstructionCost TotalCost = Spills * SpillCost;
LLVM_DEBUG(dbgs() << "LV(REG): Cost of " << TotalCost << " from "
<< Spills << " spills of "
- << Ctx.TTI.getRegisterClassName(RegClass) << "\n");
+ << TTI.getRegisterClassName(RegClass) << "\n");
----------------
artagnon wrote:
Could split out this independent change and land separately?
https://github.com/llvm/llvm-project/pull/194267
More information about the llvm-commits
mailing list