Home | History | Annotate | Download | only in SystemZ

Lines Matching refs:MBB

4824 // Create a new basic block after MBB.
4825 static MachineBasicBlock *emitBlockAfter(MachineBasicBlock *MBB) {
4826 MachineFunction &MF = *MBB->getParent();
4827 MachineBasicBlock *NewMBB = MF.CreateMachineBasicBlock(MBB->getBasicBlock());
4828 MF.insert(std::next(MachineFunction::iterator(MBB)), NewMBB);
4832 // Split MBB after MI and return the new block (the one that contains
4835 MachineBasicBlock *MBB) {
4836 MachineBasicBlock *NewMBB = emitBlockAfter(MBB);
4837 NewMBB->splice(NewMBB->begin(), MBB,
4838 std::next(MachineBasicBlock::iterator(MI)), MBB->end());
4839 NewMBB->transferSuccessorsAndUpdatePHIs(MBB);
4843 // Split MBB before MI and return the new block (the one that contains MI).
4845 MachineBasicBlock *MBB) {
4846 MachineBasicBlock *NewMBB = emitBlockAfter(MBB);
4847 NewMBB->splice(NewMBB->begin(), MBB, MI, MBB->end());
4848 NewMBB->transferSuccessorsAndUpdatePHIs(MBB);
4858 MachineBasicBlock *MBB = MI->getParent();
4859 MachineFunction &MF = *MBB->getParent();
4863 BuildMI(*MBB, MI, MI->getDebugLoc(), TII->get(SystemZ::LA), Reg)
4871 MachineBasicBlock *MBB) const {
4882 MachineBasicBlock *StartMBB = MBB;
4883 MachineBasicBlock *JoinMBB = splitBlockBefore(MI, MBB);
4889 MBB = StartMBB;
4890 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
4892 MBB->addSuccessor(JoinMBB);
4893 MBB->addSuccessor(FalseMBB);
4897 MBB = FalseMBB;
4898 MBB->addSuccessor(JoinMBB);
4903 MBB = JoinMBB;
4904 BuildMI(*MBB, MI, DL, TII->get(SystemZ::PHI), DestReg)
4918 MachineBasicBlock *MBB,
4940 BuildMI(*MBB, MI, DL, TII->get(STOCOpcode))
4944 return MBB;
4951 MachineBasicBlock *StartMBB = MBB;
4952 MachineBasicBlock *JoinMBB = splitBlockBefore(MI, MBB);
4958 MBB = StartMBB;
4959 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
4961 MBB->addSuccessor(JoinMBB);
4962 MBB->addSuccessor(FalseMBB);
4967 MBB = FalseMBB;
4968 MBB, DL, TII->get(StoreOpcode))
4970 MBB->addSuccessor(JoinMBB);
4985 MachineBasicBlock *MBB,
4989 MachineFunction &MF = *MBB->getParent();
5028 MachineBasicBlock *StartMBB = MBB;
5029 MachineBasicBlock *DoneMBB = splitBlockBefore(MI, MBB);
5036 MBB = StartMBB;
5037 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal)
5039 MBB->addSuccessor(LoopMBB);
5049 MBB = LoopMBB;
5050 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
5054 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal)
5059 BuildMI(MBB, DL, TII->get(BinOpcode), Tmp)
5063 BuildMI(MBB, DL, TII->get(SystemZ::XILF), RotatedNewVal)
5069 BuildMI(MBB, DL, TII->get(SystemZ::LCGR), Tmp2).addReg(Tmp);
5070 BuildMI(MBB, DL, TII->get(SystemZ::AGHI), RotatedNewVal)
5075 BuildMI(MBB, DL, TII->get(BinOpcode), RotatedNewVal)
5080 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedNewVal)
5084 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal)
5086 BuildMI(MBB, DL, TII->get(CSOpcode), Dest)
5088 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5090 MBB->addSuccessor(LoopMBB);
5091 MBB->addSuccessor(DoneMBB);
5105 MachineBasicBlock *MBB,
5109 MachineFunction &MF = *MBB->getParent();
5147 MachineBasicBlock *StartMBB = MBB;
5148 MachineBasicBlock *DoneMBB = splitBlockBefore(MI, MBB);
5157 MBB = StartMBB;
5158 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal)
5160 MBB->addSuccessor(LoopMBB);
5167 MBB = LoopMBB;
5168 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
5172 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal)
5174 BuildMI(MBB, DL, TII->get(CompareOpcode))
5176 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5178 MBB->addSuccessor(UpdateMBB);
5179 MBB->addSuccessor(UseAltMBB);
5184 MBB = UseAltMBB;
5186 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedAltVal)
5189 MBB->addSuccessor(UpdateMBB);
5198 MBB = UpdateMBB;
5199 BuildMI(MBB, DL, TII->get(SystemZ::PHI), RotatedNewVal)
5203 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal)
5205 BuildMI(MBB, DL, TII->get(CSOpcode), Dest)
5207 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5209 MBB->addSuccessor(LoopMBB);
5210 MBB->addSuccessor(DoneMBB);
5220 MachineBasicBlock *MBB) const {
5221 MachineFunction &MF = *MBB->getParent();
5255 MachineBasicBlock *StartMBB = MBB;
5256 MachineBasicBlock *DoneMBB = splitBlockBefore(MI, MBB);
5264 MBB = StartMBB;
5265 BuildMI(MBB, DL, TII->get(LOpcode), OrigOldVal)
5267 MBB->addSuccessor(LoopMBB);
5283 MBB = LoopMBB;
5284 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
5287 BuildMI(MBB, DL, TII->get(SystemZ::PHI), CmpVal)
5290 BuildMI(MBB, DL, TII->get(SystemZ::PHI), SwapVal)
5293 BuildMI(MBB, DL, TII->get(SystemZ::RLL), Dest)
5295 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RetryCmpVal)
5297 BuildMI(MBB, DL, TII->get(SystemZ::CR))
5299 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5302 MBB->addSuccessor(DoneMBB);
5303 MBB->addSuccessor(SetMBB);
5314 MBB = SetMBB;
5315 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RetrySwapVal)
5317 BuildMI(MBB, DL, TII->get(SystemZ::RLL), StoreVal)
5319 BuildMI(MBB, DL, TII->get(CSOpcode), RetryOldVal)
5321 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5323 MBB->addSuccessor(LoopMBB);
5324 MBB->addSuccessor(DoneMBB);
5336 MachineBasicBlock *MBB,
5338 MachineFunction &MF = *MBB->getParent();
5348 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::IMPLICIT_DEF), In128);
5353 BuildMI(*MBB, MI, DL, TII->get(SystemZ::LLILL), Zero64)
5355 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), NewIn128)
5359 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), Dest)
5363 return MBB;
5368 MachineBasicBlock *MBB,
5370 MachineFunction &MF = *MBB->getParent();
5385 splitBlockAfter(MI, MBB) : nullptr);
5408 MachineBasicBlock *StartMBB = MBB;
5409 MachineBasicBlock *DoneMBB = splitBlockBefore(MI, MBB);
5415 MBB->addSuccessor(LoopMBB);
5429 MBB = LoopMBB;
5431 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisDestReg)
5435 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisSrcReg)
5438 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisCountReg)
5442 BuildMI(MBB, DL, TII->get(SystemZ::PFD))
5445 BuildMI(MBB, DL, TII->get(Opcode))
5449 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5452 MBB->addSuccessor(EndMBB);
5453 MBB->addSuccessor(NextMBB);
5465 MBB = NextMBB;
5467 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextDestReg)
5470 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextSrcReg)
5472 BuildMI(MBB, DL, TII->get(SystemZ::AGHI), NextCountReg)
5474 BuildMI(MBB, DL, TII->get(SystemZ::CGHI))
5476 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5479 MBB->addSuccessor(LoopMBB);
5480 MBB->addSuccessor(DoneMBB);
5485 MBB = DoneMBB;
5494 BuildMI(*MBB, MI, MI->getDebugLoc(), TII->get(SystemZ::LAY), Reg)
5501 BuildMI(*MBB, MI, MI->getDebugLoc(), TII->get(SystemZ::LAY), Reg)
5506 BuildMI(*MBB, MI, DL, TII->get(Opcode))
5515 MachineBasicBlock *NextMBB = splitBlockBefore(MI, MBB);
5516 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5519 MBB->addSuccessor(EndMBB);
5520 MBB->addSuccessor(NextMBB);
5521 MBB = NextMBB;
5525 MBB->addSuccessor(EndMBB);
5526 MBB = EndMBB;
5527 MBB->addLiveIn(SystemZ::CC);
5531 return MBB;
5538 MachineBasicBlock *MBB,
5540 MachineFunction &MF = *MBB->getParent();
5556 MachineBasicBlock *StartMBB = MBB;
5557 MachineBasicBlock *DoneMBB = splitBlockBefore(MI, MBB);
5562 MBB->addSuccessor(LoopMBB);
5573 MBB = LoopMBB;
5575 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This1Reg)
5578 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This2Reg)
5581 BuildMI(MBB, DL, TII->get(TargetOpcode::COPY), SystemZ::R0L).addReg(CharReg);
5582 BuildMI(MBB, DL, TII->get(Opcode))
5585 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
5587 MBB->addSuccessor(LoopMBB);
5588 MBB->addSuccessor(DoneMBB);
5599 MachineBasicBlock *MBB,
5602 MachineFunction &MF = *MBB->getParent();
5644 return MBB;
5649 MachineBasicBlock *MBB,
5651 MachineFunction &MF = *MBB->getParent();
5665 BuildMI(*MBB, MI, DL, TII->get(Opcode), DstReg)
5669 return MBB;
5673 EmitInstrWithCustomInserter(MachineInstr *MI, MachineBasicBlock *MBB) const {
5681 return emitSelect(MI, MBB);
5684 return emitCondStore(MI, MBB, SystemZ::STCMux, 0, false);
5686 return emitCondStore(MI, MBB, SystemZ::STCMux, 0, true);
5688 return emitCondStore(MI, MBB, SystemZ::STHMux, 0, false);
5690 return emitCondStore(MI, MBB, SystemZ::STHMux, 0, true);
5692 return emitCondStore(MI, MBB, SystemZ::STC, 0, false);
5694 return emitCondStore(MI, MBB, SystemZ::STC, 0, true);
5696 return emitCondStore(MI, MBB, SystemZ::STH, 0, false);
5698 return emitCondStore(MI, MBB, SystemZ::STH, 0, true);
5700 return emitCondStore(MI, MBB, SystemZ::ST, SystemZ::STOC, false);
5702 return emitCondStore(MI, MBB, SystemZ::ST, SystemZ::STOC, true);
5704 return emitCondStore(MI, MBB, SystemZ::STG, SystemZ::STOCG, false);
5706 return emitCondStore(MI, MBB, SystemZ::STG, SystemZ::STOCG, true);
5708 return emitCondStore(MI, MBB, SystemZ::STE, 0, false);
5710 return emitCondStore(MI, MBB, SystemZ::STE, 0, true);
5712 return emitCondStore(MI, MBB, SystemZ::STD, 0, false);
5714 return emitCondStore(MI, MBB, SystemZ::STD, 0, true);
5717 return emitExt128(MI, MBB, false, SystemZ::subreg_l64);
5719 return emitExt128(MI, MBB, true, SystemZ::subreg_l32);
5721 return emitExt128(MI, MBB, true, SystemZ::subreg_l64);
5724 return emitAtomicLoadBinary(MI, MBB, 0, 0);
5726 return emitAtomicLoadBinary(MI, MBB, 0, 32);
5728 return emitAtomicLoadBinary(MI, MBB, 0, 64);
5731 return emitAtomicLoadBinary(MI, MBB, SystemZ::AR, 0);
5733 return emitAtomicLoadBinary(MI, MBB, SystemZ::AFI, 0);
5735 return emitAtomicLoadBinary(MI, MBB, SystemZ::AR, 32);
5737 return emitAtomicLoadBinary(MI, MBB, SystemZ::AHI, 32);
5739 return emitAtomicLoadBinary(MI, MBB, SystemZ::AFI, 32);
5741 return emitAtomicLoadBinary(MI, MBB, SystemZ::AGR, 64);
5743 return emitAtomicLoadBinary(MI, MBB, SystemZ::AGHI, 64);
5745 return emitAtomicLoadBinary(MI, MBB, SystemZ::AGFI, 64);
5748 return emitAtomicLoadBinary(MI, MBB, SystemZ::SR, 0);
5750 return emitAtomicLoadBinary(MI, MBB, SystemZ::SR, 32);
5752 return emitAtomicLoadBinary(MI, MBB, SystemZ::SGR, 64);
5755 return emitAtomicLoadBinary(MI, MBB, SystemZ::NR, 0);
5757 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH, 0);
5759 return emitAtomicLoadBinary(MI, MBB, SystemZ::NR, 32);
5761 MBB, SystemZ::NILL, 32);
5763 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH, 32);
5765 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILF, 32);
5767 return emitAtomicLoadBinary(MI, MBB, SystemZ::NGR, 64);
5769 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILL64, 64);
5771 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH64, 64);
5773 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHL64, 64);
5775 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHH64, 64);
5777 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILF64, 64);
5779 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHF64, 64);
5782 return emitAtomicLoadBinary(MI, MBB, SystemZ::OR, 0);
5784 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILH, 0);
5786 return emitAtomicLoadBinary(MI, MBB, SystemZ::OR, 32);
5788 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILL, 32);
5790 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILH, 32);
5792 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILF, 32);
5794 return emitAtomicLoadBinary(MI, MBB, SystemZ::OGR, 64);
5796 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILL64, 64);
5798 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILH64, 64);
5800 return emitAtomicLoadBinary(MI, MBB, SystemZ::OIHL64, 64);
5802 return emitAtomicLoadBinary(MI, MBB, SystemZ::OIHH64, 64);
5804 return emitAtomicLoadBinary(MI, MBB, SystemZ::OILF64, 64);
5806 return emitAtomicLoadBinary(MI, MBB, SystemZ::OIHF64, 64);
5809 return emitAtomicLoadBinary(MI, MBB, SystemZ::XR, 0);
5811 return emitAtomicLoadBinary(MI, MBB, SystemZ::XILF, 0);
5813 return emitAtomicLoadBinary(MI, MBB, SystemZ::XR, 32);
5815 return emitAtomicLoadBinary(MI, MBB, SystemZ::XILF, 32);
5817 return emitAtomicLoadBinary(MI, MBB, SystemZ::XGR, 64);
5819 return emitAtomicLoadBinary(MI, MBB, SystemZ::XILF64, 64);
5821 return emitAtomicLoadBinary(MI, MBB, SystemZ::XIHF64, 64);
5824 return emitAtomicLoadBinary(MI, MBB, SystemZ::NR, 0, true);
5826 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH, 0, true);
5828 return emitAtomicLoadBinary(MI, MBB, SystemZ::NR, 32, true);
5830 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILL, 32, true);
5832 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH, 32, true);
5834 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILF, 32, true);
5836 return emitAtomicLoadBinary(MI, MBB, SystemZ::NGR, 64, true);
5838 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILL64, 64, true);
5840 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILH64, 64, true);
5842 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHL64, 64, true);
5844 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHH64, 64, true);
5846 return emitAtomicLoadBinary(MI, MBB, SystemZ::NILF64, 64, true);
5848 return emitAtomicLoadBinary(MI, MBB, SystemZ::NIHF64, 64, true);
5851 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CR,
5854 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CR,
5857 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CGR,
5861 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CR,
5864 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CR,
5867 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CGR,
5871 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLR,
5874 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLR,
5877 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLGR,
5881 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLR,
5884 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLR,
5887 return emitAtomicLoadMinMax(MI, MBB, SystemZ::CLGR,
5891 return emitAtomicCmpSwapW(MI, MBB);
5894 return emitMemMemWrapper(MI, MBB, SystemZ::MVC);
5897 return emitMemMemWrapper(MI, MBB, SystemZ::NC);
5900 return emitMemMemWrapper(MI, MBB, SystemZ::OC);
5903 return emitMemMemWrapper(MI, MBB, SystemZ::XC);
5906 return emitMemMemWrapper(MI, MBB, SystemZ::CLC);
5908 return emitStringWrapper(MI, MBB, SystemZ::CLST);
5910 return emitStringWrapper(MI, MBB, SystemZ::MVST);
5912 return emitStringWrapper(MI, MBB, SystemZ::SRST);
5914 return emitTransactionBegin(MI, MBB, SystemZ::TBEGIN, false);
5916 return emitTransactionBegin(MI, MBB, SystemZ::TBEGIN, true);
5918 return emitTransactionBegin(MI, MBB, SystemZ::TBEGINC, true);
5920 return emitLoadAndTestCmp0(MI, MBB, SystemZ::LTEBR);
5922 return emitLoadAndTestCmp0(MI, MBB, SystemZ::LTDBR);
5924 return emitLoadAndTestCmp0(MI, MBB, SystemZ::LTXBR);