Lines Matching refs:MBBI

49   bool expandMI(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI,
52 MachineBasicBlock::iterator MBBI, AtomicRMWInst::BinOp,
56 MachineBasicBlock::iterator MBBI,
60 MachineBasicBlock::iterator MBBI, bool IsMasked,
97 MachineBasicBlock::iterator MBBI = MBB.begin(), E = MBB.end(); in expandMBB() local
98 while (MBBI != E) { in expandMBB()
99 MachineBasicBlock::iterator NMBBI = std::next(MBBI); in expandMBB()
100 Modified |= expandMI(MBB, MBBI, NMBBI); in expandMBB()
101 MBBI = NMBBI; in expandMBB()
108 MachineBasicBlock::iterator MBBI, in expandMI() argument
113 switch (MBBI->getOpcode()) { in expandMI()
115 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 32, in expandMI()
118 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, false, 64, in expandMI()
121 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Xchg, true, 32, in expandMI()
124 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Add, true, 32, NextMBBI); in expandMI()
126 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Sub, true, 32, NextMBBI); in expandMI()
128 return expandAtomicBinOp(MBB, MBBI, AtomicRMWInst::Nand, true, 32, in expandMI()
131 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Max, true, 32, in expandMI()
134 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::Min, true, 32, in expandMI()
137 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::UMax, true, 32, in expandMI()
140 return expandAtomicMinMaxOp(MBB, MBBI, AtomicRMWInst::UMin, true, 32, in expandMI()
143 return expandAtomicCmpXchg(MBB, MBBI, false, 32, NextMBBI); in expandMI()
145 return expandAtomicCmpXchg(MBB, MBBI, false, 64, NextMBBI); in expandMI()
147 return expandAtomicCmpXchg(MBB, MBBI, true, 32, NextMBBI); in expandMI()
389 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in expandAtomicBinOp() argument
392 MachineInstr &MI = *MBBI; in expandAtomicBinOp()
439 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, in expandAtomicMinMaxOp() argument
446 MachineInstr &MI = *MBBI; in expandAtomicMinMaxOp()
571 MachineBasicBlock::iterator MBBI, in tryToFoldBNEOnCmpXchgResult() argument
577 if (MBBI == E) in tryToFoldBNEOnCmpXchgResult()
579 MBBI = skipDebugInstructionsForward(MBBI, E); in tryToFoldBNEOnCmpXchgResult()
583 if (MBBI == E || MBBI->getOpcode() != RISCV::AND) in tryToFoldBNEOnCmpXchgResult()
585 Register ANDOp1 = MBBI->getOperand(1).getReg(); in tryToFoldBNEOnCmpXchgResult()
586 Register ANDOp2 = MBBI->getOperand(2).getReg(); in tryToFoldBNEOnCmpXchgResult()
591 DestReg = MBBI->getOperand(0).getReg(); in tryToFoldBNEOnCmpXchgResult()
592 ToErase.push_back(&*MBBI); in tryToFoldBNEOnCmpXchgResult()
593 MBBI = skipDebugInstructionsForward(std::next(MBBI), E); in tryToFoldBNEOnCmpXchgResult()
597 if (MBBI == E || MBBI->getOpcode() != RISCV::BNE) in tryToFoldBNEOnCmpXchgResult()
599 Register BNEOp0 = MBBI->getOperand(0).getReg(); in tryToFoldBNEOnCmpXchgResult()
600 Register BNEOp1 = MBBI->getOperand(1).getReg(); in tryToFoldBNEOnCmpXchgResult()
607 if (BNEOp0 == DestReg && !MBBI->getOperand(0).isKill()) in tryToFoldBNEOnCmpXchgResult()
609 if (BNEOp1 == DestReg && !MBBI->getOperand(1).isKill()) in tryToFoldBNEOnCmpXchgResult()
613 ToErase.push_back(&*MBBI); in tryToFoldBNEOnCmpXchgResult()
614 LoopHeadBNETarget = MBBI->getOperand(2).getMBB(); in tryToFoldBNEOnCmpXchgResult()
615 MBBI = skipDebugInstructionsForward(std::next(MBBI), E); in tryToFoldBNEOnCmpXchgResult()
616 if (MBBI != E) in tryToFoldBNEOnCmpXchgResult()
626 MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, bool IsMasked, in expandAtomicCmpXchg() argument
628 MachineInstr &MI = *MBBI; in expandAtomicCmpXchg()
643 tryToFoldBNEOnCmpXchgResult(MBB, std::next(MBBI), DestReg, CmpValReg, MaskReg, in expandAtomicCmpXchg()