• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/contrib/llvm-project/llvm/lib/Target/AMDGPU/

Lines Matching refs:OpToFold

33     MachineOperand *OpToFold;
45 UseMI(MI), OpToFold(nullptr), ShrinkOpcode(ShrinkOp), UseOpNo(OpNo),
54 OpToFold = FoldOp;
94 void foldOperand(MachineOperand &OpToFold,
100 void foldInstOperand(MachineInstr &MI, MachineOperand &OpToFold) const;
137 const MachineOperand &OpToFold) {
138 if (TII->isInlineConstant(UseMI, OpNo, OpToFold))
160 return TII->isInlineConstant(OpToFold, MadDesc.OpInfo[OpNo].OperandType);
174 const MachineOperand &OpToFold) {
175 return OpToFold.isFI() &&
290 Old.ChangeToGA(Fold.OpToFold->getGlobal(), Fold.OpToFold->getOffset(),
291 Fold.OpToFold->getTargetFlags());
300 MachineOperand *New = Fold.OpToFold;
330 MachineOperand *OpToFold,
332 if (!TII->isOperandLegal(*MI, OpNo, OpToFold)) {
349 bool FoldAsMAD = tryAddToFoldList(FoldList, MI, OpNo, OpToFold, TII);
358 if (Opc == AMDGPU::S_SETREG_B32 && OpToFold->isImm()) {
360 appendFoldCandidate(FoldList, MI, OpNo, OpToFold);
398 if (!TII->isOperandLegal(*MI, CommuteOpNo, OpToFold)) {
402 (OpToFold->isImm() || OpToFold->isFI() || OpToFold->isGlobal())) {
419 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true, Op32);
427 appendFoldCandidate(FoldList, MI, CommuteOpNo, OpToFold, true);
439 if (OpToFold->isImm()) {
441 !TII->isInlineConstant(*OpToFold, OpInfo)) {
454 appendFoldCandidate(FoldList, MI, OpNo, OpToFold);
504 const MachineOperand &OpToFold,
518 if (OpToFold.isImm() && TII->isInlineConstant(OpToFold, OpTy) &&
519 TII->isOperandLegal(*UseMI, UseOpIdx, &OpToFold)) {
520 UseMI->getOperand(UseOpIdx).ChangeToImmediate(OpToFold.getImm());
524 if (!OpToFold.isReg())
527 Register UseReg = OpToFold.getReg();
564 MachineOperand &OpToFold,
575 if (UseOp.isReg() && OpToFold.isReg()) {
602 foldOperand(OpToFold, RSUseMI, RSUse.getOperandNo(), FoldList,
609 if (tryToFoldACImm(TII, OpToFold, UseMI, UseOpIdx, FoldList))
612 if (frameIndexMayFold(TII, *UseMI, UseOpIdx, OpToFold)) {
626 UseMI->getOperand(UseOpIdx).ChangeToFrameIndex(OpToFold.getIndex());
632 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal();
660 foldOperand(*F.OpToFold, F.UseMI, F.UseOpNo,
667 TII->isInlineConstant(OpToFold, AMDGPU::OPERAND_REG_INLINE_C_INT32)) {
669 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm());
691 if (UseMI->isCopy() && OpToFold.isReg() &&
694 LLVM_DEBUG(dbgs() << "Folding " << OpToFold
697 Register UseReg = OpToFold.getReg();
699 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg());
702 OpToFold.setIsKill(false);
806 *OpToFold.getParent(),
814 if (OpToFold.isImm())
815 UseMI->getOperand(1).ChangeToImmediate(OpToFold.getImm());
817 UseMI->getOperand(1).ChangeToFrameIndex(OpToFold.getIndex());
822 if (OpToFold.isReg() && TRI->isSGPRReg(*MRI, OpToFold.getReg())) {
825 *OpToFold.getParent(),
834 UseMI->getOperand(1).setReg(OpToFold.getReg());
835 UseMI->getOperand(1).setSubReg(OpToFold.getSubReg());
853 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold, TII);
862 const MCInstrDesc &FoldDesc = OpToFold.getParent()->getDesc();
874 APInt Imm(64, OpToFold.getImm());
889 tryAddToFoldList(FoldList, UseMI, UseOpIdx, &OpToFold, TII);
1136 MachineOperand &OpToFold) const {
1144 bool FoldingImm = OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal();
1167 if (OpToFold.isImm() && tryConstantFoldOp(*MRI, TII, UseMI, &OpToFold)) {
1194 if (isInlineConstantIfFolded(TII, *UseMI, OpNo, OpToFold)) {
1195 foldOperand(OpToFold, UseMI, OpNo, FoldList, CopiesToReplace);
1196 } else if (frameIndexMayFold(TII, *UseMI, OpNo, OpToFold)) {
1197 foldOperand(OpToFold, UseMI, OpNo, FoldList,
1209 foldOperand(OpToFold, UseMI, NonInlineUseOpNo, FoldList, CopiesToReplace);
1222 foldOperand(OpToFold, UseMI, U.getOperandNo(),
1233 assert(!Fold.isReg() || Fold.OpToFold);
1234 if (Fold.isReg() && Register::isVirtualRegister(Fold.OpToFold->getReg())) {
1235 Register Reg = Fold.OpToFold->getReg();
1236 MachineInstr *DefMI = Fold.OpToFold->getParent();
1244 assert(Fold.OpToFold && Fold.OpToFold->isReg());
1248 MRI->clearKillFlags(Fold.OpToFold->getReg());
1521 MachineOperand &OpToFold = MI.getOperand(1);
1523 OpToFold.isImm() || OpToFold.isFI() || OpToFold.isGlobal();
1526 if (!FoldingImm && !OpToFold.isReg())
1529 if (OpToFold.isReg() && !Register::isVirtualRegister(OpToFold.getReg()))
1542 foldInstOperand(MI, OpToFold);