Lines Matching refs:InitReg
1262 // Map from <LoopReg, InitReg> to phi register for all created phis. Note that
1263 // this map is only used when InitReg is non-undef.
1265 // Map from LoopReg to phi register where the InitReg is undef.
1271 // Insert a phi that carries LoopReg from the loop body and InitReg otherwise.
1272 // If InitReg is not given it is chosen arbitrarily. It will either be undef
1274 Register phi(Register LoopReg, Optional<Register> InitReg = {},
1459 Register KernelRewriter::phi(Register LoopReg, Optional<Register> InitReg,
1462 if (InitReg.hasValue()) {
1463 auto I = Phis.find({LoopReg, InitReg.getValue()});
1473 // InitReg is either undef or no existing phi takes InitReg as input. Try and
1478 if (!InitReg.hasValue())
1482 // Found a phi taking undef as input, so rewrite it to take InitReg.
1484 MI->getOperand(1).setReg(InitReg.getValue());
1485 Phis.insert({{LoopReg, InitReg.getValue()}, R});
1486 MRI.constrainRegClass(R, MRI.getRegClass(InitReg.getValue()));
1495 if (InitReg.hasValue())
1496 MRI.constrainRegClass(R, MRI.getRegClass(*InitReg));
1498 .addReg(InitReg.hasValue() ? *InitReg : undef(RC))
1502 if (!InitReg.hasValue())
1505 Phis[{LoopReg, *InitReg}] = R;