[llvm] [GlobalISel][Localizer] Allow localization of a small number of repeated phi uses. (PR #77566)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 23:37:11 PST 2024


================
@@ -58,18 +59,17 @@ bool Localizer::isLocalUse(MachineOperand &MOUse, const MachineInstr &Def,
   return InsertMBB == Def.getParent();
 }
 
-bool Localizer::isNonUniquePhiValue(MachineOperand &Op) const {
-  MachineInstr *MI = Op.getParent();
-  if (!MI->isPHI())
-    return false;
+unsigned Localizer::getNumPhiUses(MachineOperand &Op) const {
+  auto *MI = dyn_cast<GPhi>(&*Op.getParent());
+  if (!MI)
+    return 0;
 
   Register SrcReg = Op.getReg();
-  for (unsigned Idx = 1; Idx < MI->getNumOperands(); Idx += 2) {
-    auto &MO = MI->getOperand(Idx);
-    if (&MO != &Op && MO.isReg() && MO.getReg() == SrcReg)
-      return true;
-  }
-  return false;
+  unsigned NumUses = 0;
+  for (unsigned I = 0, NumVals = MI->getNumIncomingValues(); I < NumVals; ++I)
----------------
arsenm wrote:

Braces 

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


More information about the llvm-commits mailing list