diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86FastPreTileConfig.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86FastPreTileConfig.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/lib/Target/X86/X86FastPreTileConfig.cpp b/llvm/lib/Target/X86/X86FastPreTileConfig.cpp index 3812ea0ebd3f..d3c239250943 100644 --- a/llvm/lib/Target/X86/X86FastPreTileConfig.cpp +++ b/llvm/lib/Target/X86/X86FastPreTileConfig.cpp @@ -136,12 +136,12 @@ int X86FastPreTileConfig::getStackSpaceFor(Register VirtReg) { /// If \p VirtReg live out of the current MBB, it must live out of the current /// config bool X86FastPreTileConfig::mayLiveOut(Register VirtReg, MachineInstr *CfgMI) { - if (MayLiveAcrossBlocks.test(Register::virtReg2Index(VirtReg))) + if (MayLiveAcrossBlocks.test(VirtReg.virtRegIndex())) return true; for (const MachineInstr &UseInst : MRI->use_nodbg_instructions(VirtReg)) { if (UseInst.getParent() != MBB) { - MayLiveAcrossBlocks.set(Register::virtReg2Index(VirtReg)); + MayLiveAcrossBlocks.set(VirtReg.virtRegIndex()); return true; } @@ -150,7 +150,7 @@ bool X86FastPreTileConfig::mayLiveOut(Register VirtReg, MachineInstr *CfgMI) { // tile register. if (CfgMI) { if (dominates(*MBB, *CfgMI, UseInst)) { - MayLiveAcrossBlocks.set(Register::virtReg2Index(VirtReg)); + MayLiveAcrossBlocks.set(VirtReg.virtRegIndex()); return true; } } @@ -355,14 +355,15 @@ void X86FastPreTileConfig::convertPHI(MachineBasicBlock *MBB, // Mark it as liveout, so that it will be spilled when visit // the incoming MBB. Otherwise since phi will be deleted, it // would miss spill when visit incoming MBB. - MayLiveAcrossBlocks.set(Register::virtReg2Index(InTileReg)); + MayLiveAcrossBlocks.set(InTileReg.virtRegIndex()); MachineBasicBlock *InMBB = PHI.getOperand(I + 1).getMBB(); MachineInstr *TileDefMI = MRI->getVRegDef(InTileReg); MachineBasicBlock::iterator InsertPos; if (TileDefMI->isPHI()) { InsertPos = TileDefMI->getParent()->getFirstNonPHI(); - if (VisitedPHIs.count(TileDefMI)) { // circular phi reference + if (auto It = VisitedPHIs.find(TileDefMI); + It != VisitedPHIs.end()) { // circular phi reference // def t1 // / \ // def t2 t3 = phi(t1, t4) <-- @@ -372,9 +373,9 @@ void X86FastPreTileConfig::convertPHI(MachineBasicBlock *MBB, // For each (row, column and stack address) append phi incoming value. // Create r3 = phi(r1, r4) // Create r4 = phi(r2, r3) - Register InRowReg = VisitedPHIs[TileDefMI].Row; - Register InColReg = VisitedPHIs[TileDefMI].Col; - Register InStackAddrReg = VisitedPHIs[TileDefMI].StackAddr; + Register InRowReg = It->second.Row; + Register InColReg = It->second.Col; + Register InStackAddrReg = It->second.StackAddr; RowPHI.addReg(InRowReg).addMBB(InMBB); ColPHI.addReg(InColReg).addMBB(InMBB); AddrPHI.addReg(InStackAddrReg).addMBB(InMBB); |
