Lines Matching refs:OpToFold

26     MachineOperand *OpToFold;  member
38 UseMI(MI), OpToFold(nullptr), ShrinkOpcode(ShrinkOp), UseOpNo(OpNo), in FoldCandidate()
47 OpToFold = FoldOp; in FoldCandidate()
87 void foldOperand(MachineOperand &OpToFold,
95 bool foldInstOperand(MachineInstr &MI, MachineOperand &OpToFold) const;
154 const MachineOperand &OpToFold) { in frameIndexMayFold() argument
155 if (!OpToFold.isFI()) in frameIndexMayFold()
293 Old.ChangeToGA(Fold.OpToFold->getGlobal(), Fold.OpToFold->getOffset(), in updateOperand()
294 Fold.OpToFold->getTargetFlags()); in updateOperand()
303 MachineOperand *New = Fold.OpToFold; in updateOperand()
333 MachineOperand *OpToFold, in tryAddToFoldList() argument
335 if (!TII->isOperandLegal(*MI, OpNo, OpToFold)) { in tryAddToFoldList()
343 bool FoldAsMAD = tryAddToFoldList(FoldList, MI, OpNo, OpToFold, TII); in tryAddToFoldList()
352 if (OpToFold->isImm()) { in tryAddToFoldList()
360 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
399 if (!TII->isOperandLegal(*MI, CommuteOpNo, OpToFold)) { in tryAddToFoldList()
403 (OpToFold->isImm() || OpToFold->isFI() || OpToFold->isGlobal())) { in tryAddToFoldList()
420 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true, Op32); in tryAddToFoldList()
428 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true); in tryAddToFoldList()
440 if (TII->isLiteralConstantLike(*OpToFold, OpInfo)) { in tryAddToFoldList()
442 !TII->isInlineConstant(*OpToFold, OpInfo)) { in tryAddToFoldList()
455 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
518 const MachineOperand &OpToFold, in tryToFoldACImm() argument
534 if (OpToFold.isImm() && TII->isInlineConstant(OpToFold, OpTy) && in tryToFoldACImm()
535 TII->isOperandLegal(*UseMI, UseOpIdx, &OpToFold)) { in tryToFoldACImm()
536 UseMI->getOperand(UseOpIdx).ChangeToImmediate(OpToFold.getImm()); in tryToFoldACImm()
540 if (!OpToFold.isReg()) in tryToFoldACImm()
543 Register UseReg = OpToFold.getReg(); in tryToFoldACImm()
592 MachineOperand &OpToFold, in foldOperand() argument
603 if (UseOp.isReg() && OpToFold.isReg()) { in foldOperand()
625 foldOperand(OpToFold, RSUseMI, RSUseMI->getOperandNo(&RSUse), FoldList, in foldOperand()
632 if (tryToFoldACImm(TII, OpToFold, UseMI, UseOpIdx, FoldList)) in foldOperand()
635 if (frameIndexMayFold(TII, *UseMI, UseOpIdx, OpToFold)) { in foldOperand()
654 UseMI->getOperand(UseOpIdx).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
669 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in foldOperand()
698 foldOperand(*F.OpToFold, F.UseMI, F.UseOpNo, FoldList, CopiesToReplace); in foldOperand()
703 TII->isInlineConstant(OpToFold, AMDGPU::OPERAND_REG_INLINE_C_INT32)) { in foldOperand()
705 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
728 if (UseMI->isCopy() && OpToFold.isReg() && in foldOperand()
731 LLVM_DEBUG(dbgs() << "Folding " << OpToFold << "\n into " << *UseMI); in foldOperand()
733 Register UseReg = OpToFold.getReg(); in foldOperand()
735 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
738 OpToFold.setIsKill(false); in foldOperand()
846 *OpToFold.getParent(), in foldOperand()
852 if (OpToFold.isImm()) in foldOperand()
853 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
855 UseMI->getOperand(1).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
860 if (OpToFold.isReg() && TRI->isSGPRReg(*MRI, OpToFold.getReg())) { in foldOperand()
863 *OpToFold.getParent(), in foldOperand()
872 UseMI->getOperand(1).setReg(OpToFold.getReg()); in foldOperand()
873 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
891 if (OpToFold.isReg() && ST->needsAlignedVGPRs()) { in foldOperand()
894 TRI->getRegClassForReg(*MRI, OpToFold.getReg()); in foldOperand()
895 if (TRI->hasVectorRegisters(RC) && OpToFold.getSubReg()) { in foldOperand()
896 unsigned SubReg = OpToFold.getSubReg(); in foldOperand()
907 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold, TII); in foldOperand()
916 const MCInstrDesc &FoldDesc = OpToFold.getParent()->getDesc(); in foldOperand()
928 APInt Imm(64, OpToFold.getImm()); in foldOperand()
943 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold, TII); in foldOperand()
1219 MachineOperand &OpToFold) const { in foldInstOperand()
1228 if (OpToFold.isImm()) { in foldInstOperand()
1251 foldOperand(OpToFold, UseMI, UseMI->getOperandNo(U), FoldList, in foldInstOperand()
1264 assert(!Fold.isReg() || Fold.OpToFold); in foldInstOperand()
1265 if (Fold.isReg() && Fold.OpToFold->getReg().isVirtual()) { in foldInstOperand()
1266 Register Reg = Fold.OpToFold->getReg(); in foldInstOperand()
1267 MachineInstr *DefMI = Fold.OpToFold->getParent(); in foldInstOperand()
1275 assert(Fold.OpToFold && Fold.OpToFold->isReg()); in foldInstOperand()
1279 MRI->clearKillFlags(Fold.OpToFold->getReg()); in foldInstOperand()
1770 MachineOperand &OpToFold = MI.getOperand(1); in runOnMachineFunction() local
1772 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in runOnMachineFunction()
1775 if (!FoldingImm && !OpToFold.isReg()) in runOnMachineFunction()
1778 if (OpToFold.isReg() && !OpToFold.getReg().isVirtual()) in runOnMachineFunction()
1790 Changed |= foldInstOperand(MI, OpToFold); in runOnMachineFunction()