Lines Matching refs:MachineOperand

18 #include "llvm/CodeGen/MachineOperand.h"
28 MachineOperand *OpToFold;
34 MachineOperand::MachineOperandType Kind;
37 FoldCandidate(MachineInstr *MI, unsigned OpNo, MachineOperand *FoldOp,
54 return Kind == MachineOperand::MO_FrameIndex;
58 return Kind == MachineOperand::MO_Immediate;
62 return Kind == MachineOperand::MO_Register;
65 bool isGlobal() const { return Kind == MachineOperand::MO_GlobalAddress; }
79 const MachineOperand &OpToFold) const;
111 MachineOperand *OpToFold) const;
113 const MachineOperand &UseMO) const;
115 getRegSeqInit(SmallVectorImpl<std::pair<MachineOperand *, unsigned>> &Defs,
117 bool tryToFoldACImm(const MachineOperand &OpToFold, MachineInstr *UseMI,
120 void foldOperand(MachineOperand &OpToFold,
126 MachineOperand *getImmOrMaterializedImm(MachineOperand &Op) const;
130 bool foldInstOperand(MachineInstr &MI, MachineOperand &OpToFold) const;
132 MachineOperand *&CurrentKnownM0Val) const;
134 const MachineOperand *isClamp(const MachineInstr &MI) const;
137 std::pair<const MachineOperand *, int> isOMod(const MachineInstr &MI) const;
182 const MachineOperand &MO) {
214 const MachineInstr &UseMI, int OpNo, const MachineOperand &OpToFold) const {
262 MachineOperand *Src0 = &Def->getOperand(1);
263 MachineOperand *Src1 = &Def->getOperand(2);
327 MachineOperand &Old = MI->getOperand(Fold.UseOpNo);
357 MachineOperand &Old = MI->getOperand(Fold.UseOpNo);
386 MachineOperand &Mod = MI->getOperand(ModIdx);
481 MachineOperand &Old = MI->getOperand(Fold.UseOpNo);
490 MachineOperand New = MachineOperand::CreateImm(Fold.ImmToFold);
507 MachineOperand &Dst0 = MI->getOperand(0);
508 MachineOperand &Dst1 = MI->getOperand(1);
565 MachineOperand *New = Fold.OpToFold;
578 MachineOperand *FoldOp, bool Commuted = false,
591 MachineOperand *OpToFold) const {
610 MachineOperand &Op1 = MI->getOperand(1);
611 MachineOperand &Op2 = MI->getOperand(2);
644 MI->addOperand(MachineOperand::CreateImm(0));
710 MachineOperand &OtherOp = MI->getOperand(OpNo);
731 MachineOperand &OpImm = MI->getOperand(ImmIdx);
771 const MachineOperand &UseMO) const {
780 SmallVectorImpl<std::pair<MachineOperand *, unsigned>> &Defs,
787 MachineOperand *Sub = &Def->getOperand(I);
794 MachineOperand *Op = &SubDef->getOperand(1);
812 const MachineOperand &OpToFold, MachineInstr *UseMI, unsigned UseOpIdx,
840 MachineOperand &UseOp = UseMI->getOperand(UseOpIdx);
842 MachineOperand &DefOp = Def->getOperand(1);
850 SmallVector<std::pair<MachineOperand*, unsigned>, 32> Defs;
856 const MachineOperand *Op = Defs[I].first;
878 MachineOperand &OpToFold, MachineInstr *UseMI, int UseOpIdx,
881 const MachineOperand *UseOp = &UseMI->getOperand(UseOpIdx);
899 SmallVector<MachineOperand *, 4> UsesToProcess;
932 MachineOperand &SOff =
998 MachineOperand NewSrcOp(SrcOp);
1001 UseMI->addOperand(*MF, MachineOperand::CreateImm(0)); // src0_modifiers
1003 UseMI->addOperand(*MF, MachineOperand::CreateImm(0)); // op_sel
1028 SmallVector<std::pair<MachineOperand*, unsigned>, 32> Defs;
1042 MachineOperand *Def = Defs[I].first;
1204 MachineOperand ImmOp = MachineOperand::CreateImm(Imm.getSExtValue());
1296 MachineOperand *
1297 SIFoldOperandsImpl::getImmOrMaterializedImm(MachineOperand &Op) const {
1305 MachineOperand &ImmSrc = Def->getOperand(1);
1325 MachineOperand *Src0 = getImmOrMaterializedImm(MI->getOperand(Src0Idx));
1338 MachineOperand *Src1 = getImmOrMaterializedImm(MI->getOperand(Src1Idx));
1423 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
1424 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
1461 MachineOperand *Src0 = getImmOrMaterializedImm(MI.getOperand(1));
1479 MachineOperand &OpToFold) const {
1485 MachineOperand &Dst = MI.getOperand(0);
1506 SmallVector<MachineOperand *, 4> UsesToProcess;
1553 MachineInstr &MI, MachineOperand *&CurrentKnownM0Val) const {
1558 MachineOperand &NewM0Val = MI.getOperand(1);
1571 MachineOperand *OpToFoldPtr;
1579 MachineOperand &OpToFold = *OpToFoldPtr;
1634 const MachineOperand *
1652 const MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
1653 const MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
1684 const MachineOperand *ClampSrc = isClamp(MI);
1697 MachineOperand *DefClamp = TII->getNamedOperand(*Def, AMDGPU::OpName::clamp);
1777 std::pair<const MachineOperand *, int>
1798 const MachineOperand *RegOp = nullptr;
1799 const MachineOperand *ImmOp = nullptr;
1800 const MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
1801 const MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
1837 const MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0);
1838 const MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1);
1857 const MachineOperand *RegOp;
1866 MachineOperand *DefOMod = TII->getNamedOperand(*Def, AMDGPU::OpName::omod);
1906 SmallVector<std::pair<MachineOperand*, unsigned>, 32> Defs;
1923 MachineOperand *Op = &*MRI->use_nodbg_begin(Reg);
1983 const MachineOperand &CopySrc = Copy.getOperand(1);
2003 const MachineOperand &OtherCopySrc = CopySrcDef->getOperand(1);
2056 MachineOperand &MO = PHI.getOperand(K);
2083 MachineOperand &MO = PHI.getOperand(K);
2110 MachineOperand &CopyIn = Def->getOperand(1);
2154 MachineOperand &Def = MI.getOperand(0);
2243 DenseMap<std::pair<Register, unsigned>, std::vector<MachineOperand *>>
2254 MachineOperand &PhiMO = MI.getOperand(K);
2289 for (MachineOperand *MO : MOs) {
2317 MachineOperand *CurrentKnownM0Val = nullptr;