@@ -1509,9 +1509,10 @@ class HighRegisterPressureDetector {
15091509
15101510 void dumpPSet (Register Reg) const {
15111511 dbgs () << " Reg=" << printReg (Reg, TRI, 0 , &MRI) << " PSet=" ;
1512- // FIXME: The static cast is a bug compensating bugs in the callers.
1512+ // FIXME: The static_cast is a bug compensating bugs in the callers.
15131513 VirtRegOrUnit VRegOrUnit =
1514- Reg.isVirtual () ? VirtRegOrUnit (Reg) : VirtRegOrUnit (Reg.id ());
1514+ Reg.isVirtual () ? VirtRegOrUnit (Reg)
1515+ : VirtRegOrUnit (static_cast <MCRegUnit>(Reg.id ()));
15151516 for (auto PSetIter = MRI.getPressureSets (VRegOrUnit); PSetIter.isValid ();
15161517 ++PSetIter) {
15171518 dbgs () << *PSetIter << ' ' ;
@@ -1521,9 +1522,10 @@ class HighRegisterPressureDetector {
15211522
15221523 void increaseRegisterPressure (std::vector<unsigned > &Pressure,
15231524 Register Reg) const {
1524- // FIXME: The static cast is a bug compensating bugs in the callers.
1525+ // FIXME: The static_cast is a bug compensating bugs in the callers.
15251526 VirtRegOrUnit VRegOrUnit =
1526- Reg.isVirtual () ? VirtRegOrUnit (Reg) : VirtRegOrUnit (Reg.id ());
1527+ Reg.isVirtual () ? VirtRegOrUnit (Reg)
1528+ : VirtRegOrUnit (static_cast <MCRegUnit>(Reg.id ()));
15271529 auto PSetIter = MRI.getPressureSets (VRegOrUnit);
15281530 unsigned Weight = PSetIter.getWeight ();
15291531 for (; PSetIter.isValid (); ++PSetIter)
@@ -1569,7 +1571,7 @@ class HighRegisterPressureDetector {
15691571 Register Reg =
15701572 Use.VRegOrUnit .isVirtualReg ()
15711573 ? Use.VRegOrUnit .asVirtualReg ()
1572- : static_cast <Register >(Use.VRegOrUnit .asMCRegUnit ());
1574+ : Register ( static_cast <unsigned >(Use.VRegOrUnit .asMCRegUnit () ));
15731575 // Ignore the variable that appears only on one side of phi instruction
15741576 // because it's used only at the first iteration.
15751577 if (MI.isPHI () && Reg != getLoopPhiReg (MI, OrigMBB))
@@ -1621,10 +1623,10 @@ class HighRegisterPressureDetector {
16211623 } else {
16221624 for (auto &Use : ROMap.find (MI)->getSecond ().Uses ) {
16231625 // FIXME: The static_cast is a bug.
1624- Register Reg =
1625- Use.VRegOrUnit .isVirtualReg ()
1626- ? Use. VRegOrUnit . asVirtualReg ()
1627- : static_cast <Register>( Use.VRegOrUnit .asMCRegUnit ());
1626+ Register Reg = Use. VRegOrUnit . isVirtualReg ()
1627+ ? Use.VRegOrUnit .asVirtualReg ()
1628+ : Register ( static_cast < unsigned >(
1629+ Use.VRegOrUnit .asMCRegUnit () ));
16281630 UpdateTargetRegs (Reg);
16291631 }
16301632 }
@@ -1641,7 +1643,7 @@ class HighRegisterPressureDetector {
16411643 Register Reg =
16421644 Use.VRegOrUnit .isVirtualReg ()
16431645 ? Use.VRegOrUnit .asVirtualReg ()
1644- : static_cast <Register >(Use.VRegOrUnit .asMCRegUnit ());
1646+ : Register ( static_cast <unsigned >(Use.VRegOrUnit .asMCRegUnit () ));
16451647 if (!TargetRegs.contains (Reg))
16461648 continue ;
16471649 auto [Ite, Inserted] = LastUseMI.try_emplace (Reg, MI);
@@ -1697,9 +1699,10 @@ class HighRegisterPressureDetector {
16971699 const auto InsertReg = [this , &CurSetPressure](RegSetTy &RegSet,
16981700 VirtRegOrUnit VRegOrUnit) {
16991701 // FIXME: The static_cast is a bug.
1700- Register Reg = VRegOrUnit.isVirtualReg ()
1701- ? VRegOrUnit.asVirtualReg ()
1702- : static_cast <Register>(VRegOrUnit.asMCRegUnit ());
1702+ Register Reg =
1703+ VRegOrUnit.isVirtualReg ()
1704+ ? VRegOrUnit.asVirtualReg ()
1705+ : Register (static_cast <unsigned >(VRegOrUnit.asMCRegUnit ()));
17031706 if (!Reg.isValid () || isReservedRegister (Reg))
17041707 return ;
17051708
0 commit comments