Lines Matching refs:MRI
38 Register llvm::constrainRegToClass(MachineRegisterInfo &MRI, in constrainRegToClass() argument
42 if (!RBI.constrainGenericRegister(Reg, RegClass, MRI)) in constrainRegToClass()
43 return MRI.createVirtualRegister(&RegClass); in constrainRegToClass()
50 MachineRegisterInfo &MRI, const TargetInstrInfo &TII, in constrainOperandRegClass() argument
57 Register ConstrainedReg = constrainRegToClass(MRI, TII, RBI, Reg, RegClass); in constrainOperandRegClass()
83 MachineInstr *RegDef = MRI.getVRegDef(Reg); in constrainOperandRegClass()
86 Observer->changingAllUsesOfReg(MRI, Reg); in constrainOperandRegClass()
95 MachineRegisterInfo &MRI, const TargetInstrInfo &TII, in constrainOperandRegClass() argument
112 RegClass = TRI.getConstrainedRegClassForOperand(RegMO, MRI); in constrainOperandRegClass()
130 return constrainOperandRegClass(MF, TRI, MRI, TII, RBI, InsertPt, *RegClass, in constrainOperandRegClass()
142 MachineRegisterInfo &MRI = MF.getRegInfo(); in constrainSelectedInstRegOperands() local
167 constrainOperandRegClass(MF, TRI, MRI, TII, RBI, I, I.getDesc(), MO, OpI); in constrainSelectedInstRegOperands()
181 MachineRegisterInfo &MRI) { in canReplaceReg() argument
186 if (MRI.getType(DstReg) != MRI.getType(SrcReg)) in canReplaceReg()
190 return !MRI.getRegClassOrRegBank(DstReg) || in canReplaceReg()
191 MRI.getRegClassOrRegBank(DstReg) == MRI.getRegClassOrRegBank(SrcReg); in canReplaceReg()
195 const MachineRegisterInfo &MRI) { in isTriviallyDead() argument
220 if (Register::isPhysicalRegister(Reg) || !MRI.use_nodbg_empty(Reg)) in isTriviallyDead()
271 const MachineRegisterInfo &MRI) { in getConstantVRegVal() argument
273 getConstantVRegValWithLookThrough(VReg, MRI, /*LookThroughInstrs*/ false); in getConstantVRegVal()
282 const MachineRegisterInfo &MRI) { in getConstantVRegSExtVal() argument
283 Optional<APInt> Val = getConstantVRegVal(VReg, MRI); in getConstantVRegSExtVal()
290 Register VReg, const MachineRegisterInfo &MRI, bool LookThroughInstrs, in getConstantVRegValWithLookThrough() argument
299 &MRI](const MachineInstr &MI) -> Optional<APInt> { in getConstantVRegValWithLookThrough()
306 MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); in getConstantVRegValWithLookThrough()
315 while ((MI = MRI.getVRegDef(VReg)) && !IsConstantOpcode(MI->getOpcode()) && in getConstantVRegValWithLookThrough()
327 MRI.getType(MI->getOperand(0).getReg()).getSizeInBits())); in getConstantVRegValWithLookThrough()
369 const MachineRegisterInfo &MRI) { in getConstantIntVRegVal() argument
370 MachineInstr *MI = MRI.getVRegDef(VReg); in getConstantIntVRegVal()
377 llvm::getConstantFPVRegVal(Register VReg, const MachineRegisterInfo &MRI) { in getConstantFPVRegVal() argument
378 MachineInstr *MI = MRI.getVRegDef(VReg); in getConstantFPVRegVal()
385 llvm::getDefSrcRegIgnoringCopies(Register Reg, const MachineRegisterInfo &MRI) { in getDefSrcRegIgnoringCopies() argument
387 auto *DefMI = MRI.getVRegDef(Reg); in getDefSrcRegIgnoringCopies()
388 auto DstTy = MRI.getType(DefMI->getOperand(0).getReg()); in getDefSrcRegIgnoringCopies()
394 auto SrcTy = MRI.getType(SrcReg); in getDefSrcRegIgnoringCopies()
397 DefMI = MRI.getVRegDef(SrcReg); in getDefSrcRegIgnoringCopies()
405 const MachineRegisterInfo &MRI) { in getDefIgnoringCopies() argument
407 getDefSrcRegIgnoringCopies(Reg, MRI); in getDefIgnoringCopies()
412 const MachineRegisterInfo &MRI) { in getSrcRegIgnoringCopies() argument
414 getDefSrcRegIgnoringCopies(Reg, MRI); in getSrcRegIgnoringCopies()
419 const MachineRegisterInfo &MRI) { in getOpcodeDef() argument
420 MachineInstr *DefMI = getDefIgnoringCopies(Reg, MRI); in getOpcodeDef()
439 const MachineRegisterInfo &MRI) { in ConstantFoldBinOp() argument
440 auto MaybeOp2Cst = getConstantVRegVal(Op2, MRI); in ConstantFoldBinOp()
444 auto MaybeOp1Cst = getConstantVRegVal(Op1, MRI); in ConstantFoldBinOp()
494 const MachineRegisterInfo &MRI) { in ConstantFoldFPBinOp() argument
495 const ConstantFP *Op2Cst = getConstantFPVRegVal(Op2, MRI); in ConstantFoldFPBinOp()
499 const ConstantFP *Op1Cst = getConstantFPVRegVal(Op1, MRI); in ConstantFoldFPBinOp()
546 bool llvm::isKnownNeverNaN(Register Val, const MachineRegisterInfo &MRI, in isKnownNeverNaN() argument
548 const MachineInstr *DefMI = MRI.getVRegDef(Val); in isKnownNeverNaN()
557 if (const ConstantFP *FPVal = getConstantFPVRegVal(Val, MRI)) { in isKnownNeverNaN()
564 if (!isKnownNeverNaN(Op.getReg(), MRI, SNaN)) in isKnownNeverNaN()
578 return (isKnownNeverNaN(DefMI->getOperand(1).getReg(), MRI) && in isKnownNeverNaN()
579 isKnownNeverSNaN(DefMI->getOperand(2).getReg(), MRI)) || in isKnownNeverNaN()
580 (isKnownNeverSNaN(DefMI->getOperand(1).getReg(), MRI) && in isKnownNeverNaN()
581 isKnownNeverNaN(DefMI->getOperand(2).getReg(), MRI)); in isKnownNeverNaN()
587 return isKnownNeverNaN(DefMI->getOperand(1).getReg(), MRI, SNaN) || in isKnownNeverNaN()
588 isKnownNeverNaN(DefMI->getOperand(2).getReg(), MRI, SNaN); in isKnownNeverNaN()
632 MachineRegisterInfo &MRI = MF.getRegInfo(); in getFunctionLiveInPhysReg() local
633 Register LiveIn = MRI.getLiveInVirtReg(PhysReg); in getFunctionLiveInPhysReg()
635 MachineInstr *Def = MRI.getVRegDef(LiveIn); in getFunctionLiveInPhysReg()
649 MRI.setType(LiveIn, RegTy); in getFunctionLiveInPhysReg()
661 const MachineRegisterInfo &MRI) { in ConstantFoldExtOp() argument
662 auto MaybeOp1Cst = getConstantVRegVal(Op1, MRI); in ConstantFoldExtOp()
668 LLT Ty = MRI.getType(Op1); in ConstantFoldExtOp()
678 const MachineRegisterInfo &MRI) { in ConstantFoldIntToFloat() argument
680 if (auto MaybeSrcVal = getConstantVRegVal(Src, MRI)) { in ConstantFoldIntToFloat()
689 bool llvm::isKnownToBeAPowerOfTwo(Register Reg, const MachineRegisterInfo &MRI, in isKnownToBeAPowerOfTwo() argument
692 getDefSrcRegIgnoringCopies(Reg, MRI); in isKnownToBeAPowerOfTwo()
697 const LLT Ty = MRI.getType(Reg); in isKnownToBeAPowerOfTwo()
710 if (auto ConstLHS = getConstantVRegVal(MI.getOperand(1).getReg(), MRI)) { in isKnownToBeAPowerOfTwo()
718 if (auto ConstLHS = getConstantVRegVal(MI.getOperand(1).getReg(), MRI)) { in isKnownToBeAPowerOfTwo()
729 if (!isKnownToBeAPowerOfTwo(MI.getOperand(I).getReg(), MRI, KB)) in isKnownToBeAPowerOfTwo()
740 auto Const = getConstantVRegVal(MI.getOperand(I).getReg(), MRI); in isKnownToBeAPowerOfTwo()
890 const MachineRegisterInfo &MRI, in isBuildVectorConstantSplat() argument
898 if (!mi_match(Element, MRI, m_SpecificICst(SplatValue))) in isBuildVectorConstantSplat()
907 const MachineRegisterInfo &MRI) { in getBuildVectorConstantSplat() argument
916 if (!mi_match(Element, MRI, m_ICst(ElementValue))) in getBuildVectorConstantSplat()
928 const MachineRegisterInfo &MRI) { in isBuildVectorAllZeros() argument
929 return isBuildVectorConstantSplat(MI, MRI, 0); in isBuildVectorAllZeros()
933 const MachineRegisterInfo &MRI) { in isBuildVectorAllOnes() argument
934 return isBuildVectorConstantSplat(MI, MRI, -1); in isBuildVectorAllOnes()
938 const MachineRegisterInfo &MRI) { in getVectorSplat() argument
942 if (auto Splat = getBuildVectorConstantSplat(MI, MRI)) in getVectorSplat()
952 const MachineRegisterInfo &MRI, Register Reg, in matchUnaryPredicate() argument
955 const MachineInstr *Def = getDefIgnoringCopies(Reg, MRI); in matchUnaryPredicate()
968 const MachineInstr *SrcDef = getDefIgnoringCopies(SrcElt, MRI); in matchUnaryPredicate()