[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