Lines Matching refs:MRI

24 bool mi_match(Reg R, const MachineRegisterInfo &MRI, Pattern &&P) {
25 return P.match(MRI, R);
33 bool match(const MachineRegisterInfo &MRI, unsigned Reg) {
34 return MRI.hasOneUse(Reg) && SubPat.match(MRI, Reg);
46 bool match(const MachineRegisterInfo &MRI, unsigned Reg) {
47 if (auto MaybeCst = getConstantVRegVal(Reg, MRI)) {
63 bool match(const MachineRegisterInfo &MRI, unsigned Reg) { return true; }
64 bool match(const MachineRegisterInfo &MRI, MachineOperand *MO) {
74 bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) {
86 bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) {
87 return P.match(MRI, src) && And<Preds...>::match(MRI, src);
93 bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) {
104 bool match(const MachineRegisterInfo &MRI, MatchSrc &&src) {
105 return P.match(MRI, src) || Or<Preds...>::match(MRI, src);
118 static bool bind(const MachineRegisterInfo &MRI, BindTy &VR, BindTy &V) {
125 static bool bind(const MachineRegisterInfo &MRI, MachineInstr *&MI,
127 MI = MRI.getVRegDef(Reg);
135 static bool bind(const MachineRegisterInfo &MRI, LLT &Ty, unsigned Reg) {
136 Ty = MRI.getType(Reg);
144 static bool bind(const MachineRegisterInfo &MRI, const ConstantFP *&F,
146 F = getConstantFPVRegVal(Reg, MRI);
158 template <typename ITy> bool match(const MachineRegisterInfo &MRI, ITy &&V) {
159 return bind_helper<Class>::bind(MRI, VR, V);
179 bool match(const MachineRegisterInfo &MRI, OpTy &&Op) {
181 if (mi_match(Op, MRI, m_MInstr(TmpMI))) {
183 return (L.match(MRI, TmpMI->getOperand(1).getReg()) &&
184 R.match(MRI, TmpMI->getOperand(2).getReg())) ||
185 (Commutable && (R.match(MRI, TmpMI->getOperand(1).getReg()) &&
186 L.match(MRI, TmpMI->getOperand(2).getReg())));
247 bool match(const MachineRegisterInfo &MRI, OpTy &&Op) {
249 if (mi_match(Op, MRI, m_MInstr(TmpMI))) {
251 return L.match(MRI, TmpMI->getOperand(1).getReg());
328 bool match(const MachineRegisterInfo &MRI, unsigned Reg) {
329 return MRI.getType(Reg) == Ty;