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()
431 Old.ChangeToGA(Fold.OpToFold->getGlobal(), Fold.OpToFold->getOffset(), in updateOperand()
432 Fold.OpToFold->getTargetFlags()); in updateOperand()
441 MachineOperand *New = Fold.OpToFold; in updateOperand()
467 MachineOperand *OpToFold) const { in tryAddToFoldList()
471 if (!OpToFold->isImm()) in tryAddToFoldList()
480 tryAddToFoldList(FoldList, MI, TryAK ? 3 : 2, OpToFold); in tryAddToFoldList()
504 bool IsLegal = TII->isOperandLegal(*MI, OpNo, OpToFold); in tryAddToFoldList()
505 if (!IsLegal && OpToFold->isImm()) { in tryAddToFoldList()
506 FoldCandidate Fold(MI, OpNo, OpToFold); in tryAddToFoldList()
521 bool FoldAsMAD = tryAddToFoldList(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
539 if (OpToFold->isImm()) { in tryAddToFoldList()
547 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
576 if (!TII->isOperandLegal(*MI, CommuteOpNo, OpToFold)) { in tryAddToFoldList()
579 (!OpToFold->isImm() && !OpToFold->isFI() && !OpToFold->isGlobal())) { in tryAddToFoldList()
598 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true, Op32); in tryAddToFoldList()
605 !OpToFold->isReg() && !TII->isInlineConstant(*OpToFold)) { in tryAddToFoldList()
631 if (!OpToFold->isReg() && !TII->isInlineConstant(*OpToFold, OpInfo)) { in tryAddToFoldList()
642 appendFoldCandidate(FoldList, MI, OpNo, OpToFold); in tryAddToFoldList()
688 const MachineOperand &OpToFold, MachineInstr *UseMI, unsigned UseOpIdx, in tryToFoldACImm() argument
698 if (OpToFold.isImm() && TII->isInlineConstant(OpToFold, OpTy) && in tryToFoldACImm()
699 TII->isOperandLegal(*UseMI, UseOpIdx, &OpToFold)) { in tryToFoldACImm()
700 UseMI->getOperand(UseOpIdx).ChangeToImmediate(OpToFold.getImm()); in tryToFoldACImm()
704 if (!OpToFold.isReg()) in tryToFoldACImm()
707 Register UseReg = OpToFold.getReg(); in tryToFoldACImm()
754 MachineOperand &OpToFold, in foldOperand() argument
765 if (UseOp.isReg() && OpToFold.isReg() && in foldOperand()
786 foldOperand(OpToFold, RSUseMI, RSUseMI->getOperandNo(&RSUse), FoldList, in foldOperand()
793 if (tryToFoldACImm(OpToFold, UseMI, UseOpIdx, FoldList)) in foldOperand()
796 if (frameIndexMayFold(*UseMI, UseOpIdx, OpToFold)) { in foldOperand()
815 UseMI->getOperand(UseOpIdx).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
829 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in foldOperand()
847 TII->isInlineConstant(OpToFold, AMDGPU::OPERAND_REG_INLINE_C_INT32)) { in foldOperand()
849 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
872 if (UseMI->isCopy() && OpToFold.isReg() && in foldOperand()
875 LLVM_DEBUG(dbgs() << "Folding " << OpToFold << "\n into " << *UseMI); in foldOperand()
877 Register UseReg = OpToFold.getReg(); in foldOperand()
879 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
882 OpToFold.setIsKill(false); in foldOperand()
885 MRI->clearKillFlags(OpToFold.getReg()); in foldOperand()
992 *OpToFold.getParent(), in foldOperand()
998 if (OpToFold.isImm()) in foldOperand()
999 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm()); in foldOperand()
1001 UseMI->getOperand(1).ChangeToFrameIndex(OpToFold.getIndex()); in foldOperand()
1006 if (OpToFold.isReg() && TRI->isSGPRReg(*MRI, OpToFold.getReg())) { in foldOperand()
1009 *OpToFold.getParent(), in foldOperand()
1018 UseMI->getOperand(1).setReg(OpToFold.getReg()); in foldOperand()
1019 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg()); in foldOperand()
1036 if (OpToFold.isReg() && ST->needsAlignedVGPRs()) { in foldOperand()
1039 TRI->getRegClassForReg(*MRI, OpToFold.getReg()); in foldOperand()
1040 if (TRI->hasVectorRegisters(RC) && OpToFold.getSubReg()) { in foldOperand()
1041 unsigned SubReg = OpToFold.getSubReg(); in foldOperand()
1051 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold); in foldOperand()
1060 const MCInstrDesc &FoldDesc = OpToFold.getParent()->getDesc(); in foldOperand()
1071 APInt Imm(64, OpToFold.getImm()); in foldOperand()
1084 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold); in foldOperand()
1352 MachineOperand &OpToFold) const { in foldInstOperand()
1361 if (OpToFold.isImm()) { in foldInstOperand()
1384 foldOperand(OpToFold, UseMI, UseMI->getOperandNo(U), FoldList, in foldInstOperand()
1397 assert(!Fold.isReg() || Fold.OpToFold); in foldInstOperand()
1398 if (Fold.isReg() && Fold.OpToFold->getReg().isVirtual()) { in foldInstOperand()
1399 Register Reg = Fold.OpToFold->getReg(); in foldInstOperand()
1400 MachineInstr *DefMI = Fold.OpToFold->getParent(); in foldInstOperand()
1408 assert(Fold.OpToFold && Fold.OpToFold->isReg()); in foldInstOperand()
1412 MRI->clearKillFlags(Fold.OpToFold->getReg()); in foldInstOperand()
1443 MachineOperand &OpToFold = MI.getOperand(1); in tryFoldFoldableCopy() local
1444 bool FoldingImm = OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal(); in tryFoldFoldableCopy()
1447 if (!FoldingImm && !OpToFold.isReg()) in tryFoldFoldableCopy()
1450 if (OpToFold.isReg() && !OpToFold.getReg().isVirtual()) in tryFoldFoldableCopy()
1462 bool Changed = foldInstOperand(MI, OpToFold); in tryFoldFoldableCopy()