Lines Matching refs:Compare
82 bool convertToBRCT(MachineInstr &MI, MachineInstr &Compare,
84 bool convertToLoadAndTrap(MachineInstr &MI, MachineInstr &Compare,
86 bool convertToLoadAndTest(MachineInstr &MI, MachineInstr &Compare,
88 bool convertToLogical(MachineInstr &MI, MachineInstr &Compare,
90 bool adjustCCMasksForInstr(MachineInstr &MI, MachineInstr &Compare,
93 bool optimizeCompareZero(MachineInstr &Compare,
95 bool fuseCompareOperations(MachineInstr &Compare,
175 static unsigned getCompareSourceReg(MachineInstr &Compare) { in getCompareSourceReg() argument
177 if (Compare.isCompare()) in getCompareSourceReg()
178 reg = Compare.getOperand(0).getReg(); in getCompareSourceReg()
179 else if (isLoadAndTestAsCmp(Compare)) in getCompareSourceReg()
180 reg = Compare.getOperand(1).getReg(); in getCompareSourceReg()
190 MachineInstr &MI, MachineInstr &Compare, in convertToBRCT() argument
218 unsigned SrcReg = getCompareSourceReg(Compare); in convertToBRCT()
219 MachineBasicBlock::iterator MBBI = Compare, MBBE = Branch; in convertToBRCT()
244 MachineInstr &MI, MachineInstr &Compare, in convertToLoadAndTrap() argument
262 unsigned SrcReg = getCompareSourceReg(Compare); in convertToLoadAndTrap()
263 MachineBasicBlock::iterator MBBI = Compare, MBBE = Branch; in convertToLoadAndTrap()
284 MachineInstr &MI, MachineInstr &Compare, in convertToLoadAndTest() argument
289 if (!Opcode || !adjustCCMasksForInstr(MI, Compare, CCUsers, Opcode)) in convertToLoadAndTest()
301 if (!Compare.mayRaiseFPException()) in convertToLoadAndTest()
312 MachineInstr &MI, MachineInstr &Compare, in convertToLogical() argument
326 if (!ConvOpc || !adjustCCMasksForInstr(MI, Compare, CCUsers, ConvOpc)) in convertToLogical()
360 MachineInstr &MI, MachineInstr &Compare, in adjustCCMasksForInstr() argument
363 unsigned CompareFlags = Compare.getDesc().TSFlags; in adjustCCMasksForInstr()
371 if (Compare.mayRaiseFPException()) { in adjustCCMasksForInstr()
484 if (MBBI == Compare) { in adjustCCMasksForInstr()
491 MachineBasicBlock::iterator MBBI = MI, MBBE = Compare; in adjustCCMasksForInstr()
500 static bool isCompareZero(MachineInstr &Compare) { in isCompareZero() argument
501 switch (Compare.getOpcode()) { in isCompareZero()
508 if (isLoadAndTestAsCmp(Compare)) in isCompareZero()
510 return Compare.getNumExplicitOperands() == 2 && in isCompareZero()
511 Compare.getOperand(1).isImm() && Compare.getOperand(1).getImm() == 0; in isCompareZero()
520 MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) { in optimizeCompareZero() argument
521 if (!isCompareZero(Compare)) in optimizeCompareZero()
525 unsigned SrcReg = getCompareSourceReg(Compare); in optimizeCompareZero()
526 MachineBasicBlock &MBB = *Compare.getParent(); in optimizeCompareZero()
530 std::next(MachineBasicBlock::reverse_iterator(&Compare)), in optimizeCompareZero()
538 if (convertToBRCT(MI, Compare, CCUsers)) { in optimizeCompareZero()
542 if (convertToLoadAndTrap(MI, Compare, CCUsers)) { in optimizeCompareZero()
548 if ((!CCRefs && convertToLoadAndTest(MI, Compare, CCUsers)) || in optimizeCompareZero()
550 (adjustCCMasksForInstr(MI, Compare, CCUsers) || in optimizeCompareZero()
551 convertToLogical(MI, Compare, CCUsers)))) { in optimizeCompareZero()
565 if (Compare.mayRaiseFPException() && in optimizeCompareZero()
574 std::next(MachineBasicBlock::iterator(&Compare)), MBB.end()); in optimizeCompareZero()
578 if (convertToLoadAndTest(MI, Compare, CCUsers)) { in optimizeCompareZero()
595 MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) { in fuseCompareOperations() argument
620 TII->getFusedCompare(Compare.getOpcode(), Type, &Compare); in fuseCompareOperations()
628 Register SrcReg = Compare.getOperand(0).getReg(); in fuseCompareOperations()
630 Compare.getOperand(1).isReg() ? Compare.getOperand(1).getReg() : Register(); in fuseCompareOperations()
631 MachineBasicBlock::iterator MBBI = Compare, MBBE = Branch; in fuseCompareOperations()
672 MIB.add(Compare.getOperand(I)); in fuseCompareOperations()
689 MBBI = Compare; in fuseCompareOperations()