Lines Matching refs:OpToFold

27     MachineOperand *OpToFold;  member
39 UseMI(MI), OpToFold(nullptr), ShrinkOpcode(ShrinkOp), UseOpNo(OpNo), in FoldCandidate()
48 OpToFold = FoldOp; in FoldCandidate()
79 const MachineOperand &OpToFold) const;
89 MachineOperand *OpToFold) const;
95 bool tryToFoldACImm(const MachineOperand &OpToFold, MachineInstr *UseMI,
98 void foldOperand(MachineOperand &OpToFold,
108 bool foldInstOperand(MachineInstr &MI, MachineOperand &OpToFold) const;
181 const MachineOperand &OpToFold) const { in frameIndexMayFold()
182 if (!OpToFold.isFI()) in frameIndexMayFold()
433 Old.ChangeToGA(Fold.OpToFold->getGlobal(), Fold.OpToFold->getOffset(), in updateOperand()
434 Fold.OpToFold->getTargetFlags()); in updateOperand()
443 MachineOperand *New = Fold.OpToFold; in updateOperand()
469 MachineOperand *OpToFold) const { in tryAddToFoldList()
473 if (!OpToFold->isImm()) in tryAddToFoldList()
482 tryAddToFoldList(FoldList, MI, TryAK ? 3 : 2, OpToFold); in tryAddToFoldList()
506 bool IsLegal = TII->isOperandLegal(*MI, OpNo, OpToFold); in tryAddToFoldList()
507 if (!IsLegal && OpToFold->isImm()) { in tryAddToFoldList()
508 FoldCandidate Fold(MI, OpNo, OpToFold); in tryAddToFoldList()
523 bool FoldAsMAD = tryAddToFoldList(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
541 if (OpToFold->isImm()) { in tryAddToFoldList()
549 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
578 if (!TII->isOperandLegal(*MI, CommuteOpNo, OpToFold)) { in tryAddToFoldList()
581 (!OpToFold->isImm() && !OpToFold->isFI() && !OpToFold->isGlobal())) { in tryAddToFoldList()
600 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true, Op32); in tryAddToFoldList()
607 !OpToFold->isReg() && !TII->isInlineConstant(*OpToFold)) { in tryAddToFoldList()
633 if (!OpToFold->isReg() && !TII->isInlineConstant(*OpToFold, OpInfo)) { in tryAddToFoldList()
644 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
690 const MachineOperand &OpToFold, MachineInstr *UseMI, unsigned UseOpIdx, in tryToFoldACImm() argument
700 if (OpToFold.isImm() && TII->isInlineConstant(OpToFold, OpTy) && in tryToFoldACImm()
701 TII->isOperandLegal(*UseMI, UseOpIdx, &OpToFold)) { in tryToFoldACImm()
702 UseMI->getOperand(UseOpIdx).ChangeToImmediate(OpToFold.getImm()); in tryToFoldACImm()
706 if (!OpToFold.isReg()) in tryToFoldACImm()
709 Register UseReg = OpToFold.getReg(); in tryToFoldACImm()
756 MachineOperand &OpToFold, in foldOperand() argument
767 if (UseOp->isReg() && OpToFold.isReg() && in foldOperand()
792 foldOperand(OpToFold, RSUseMI, RSUseMI->getOperandNo(RSUse), FoldList, in foldOperand()
798 if (tryToFoldACImm(OpToFold, UseMI, UseOpIdx, FoldList)) in foldOperand()
801 if (frameIndexMayFold(*UseMI, UseOpIdx, OpToFold)) { in foldOperand()
820 UseMI->getOperand(UseOpIdx).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
834 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in foldOperand()
852 TII->isInlineConstant(OpToFold, AMDGPU::OPERAND_REG_INLINE_C_INT32)) { in foldOperand()
854 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
889 if (UseMI->isCopy() && OpToFold.isReg() && in foldOperand()
892 LLVM_DEBUG(dbgs() << "Folding " << OpToFold << "\n into " << *UseMI); in foldOperand()
894 Register UseReg = OpToFold.getReg(); in foldOperand()
896 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
899 OpToFold.setIsKill(false); in foldOperand()
902 MRI->clearKillFlags(OpToFold.getReg()); in foldOperand()
1009 *OpToFold.getParent(), in foldOperand()
1015 if (OpToFold.isImm()) in foldOperand()
1016 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
1018 UseMI->getOperand(1).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
1023 if (OpToFold.isReg() && TRI->isSGPRReg(*MRI, OpToFold.getReg())) { in foldOperand()
1026 *OpToFold.getParent(), in foldOperand()
1035 UseMI->getOperand(1).setReg(OpToFold.getReg()); in foldOperand()
1036 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
1053 if (OpToFold.isReg() && ST->needsAlignedVGPRs()) { in foldOperand()
1056 TRI->getRegClassForReg(*MRI, OpToFold.getReg()); in foldOperand()
1058 if (TRI->hasVectorRegisters(RC) && OpToFold.getSubReg()) { in foldOperand()
1059 unsigned SubReg = OpToFold.getSubReg(); in foldOperand()
1069 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold); in foldOperand()
1078 const MCInstrDesc &FoldDesc = OpToFold.getParent()->getDesc(); in foldOperand()
1089 APInt Imm(64, OpToFold.getImm()); in foldOperand()
1102 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold); in foldOperand()
1372 MachineOperand &OpToFold) const { in foldInstOperand()
1381 if (OpToFold.isImm()) { in foldInstOperand()
1404 foldOperand(OpToFold, UseMI, UseMI->getOperandNo(U), FoldList, in foldInstOperand()
1417 assert(!Fold.isReg() || Fold.OpToFold); in foldInstOperand()
1418 if (Fold.isReg() && Fold.OpToFold->getReg().isVirtual()) { in foldInstOperand()
1419 Register Reg = Fold.OpToFold->getReg(); in foldInstOperand()
1420 MachineInstr *DefMI = Fold.OpToFold->getParent(); in foldInstOperand()
1428 assert(Fold.OpToFold && Fold.OpToFold->isReg()); in foldInstOperand()
1432 MRI->clearKillFlags(Fold.OpToFold->getReg()); in foldInstOperand()
1463 MachineOperand &OpToFold = MI.getOperand(1); in tryFoldFoldableCopy() local
1464 bool FoldingImm = OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in tryFoldFoldableCopy()
1467 if (!FoldingImm && !OpToFold.isReg()) in tryFoldFoldableCopy()
1470 if (OpToFold.isReg() && !OpToFold.getReg().isVirtual()) in tryFoldFoldableCopy()
1482 bool Changed = foldInstOperand(MI, OpToFold); in tryFoldFoldableCopy()