static void tryToGetTargetInfo(const MachineOperand &MO,
const TargetRegisterInfo *&TRI,
const TargetIntrinsicInfo *&IntrinsicInfo) {
- if (const MachineInstr *MI = MO.getParent()) {
- if (const MachineBasicBlock *MBB = MI->getParent()) {
- if (const MachineFunction *MF = MBB->getParent()) {
- TRI = MF->getSubtarget().getRegisterInfo();
- IntrinsicInfo = MF->getTarget().getIntrinsicInfo();
- }
- }
+ if (const MachineFunction *MF = getMFIfAvailable(MO)) {
+ TRI = MF->getSubtarget().getRegisterInfo();
+ IntrinsicInfo = MF->getTarget().getIntrinsicInfo();
}
}
}
// Print the register class / bank.
if (TargetRegisterInfo::isVirtualRegister(Reg)) {
- if (const MachineInstr *MI = getParent()) {
- if (const MachineBasicBlock *MBB = MI->getParent()) {
- if (const MachineFunction *MF = MBB->getParent()) {
- const MachineRegisterInfo &MRI = MF->getRegInfo();
- if (!PrintDef || MRI.def_empty(Reg)) {
- OS << ':';
- OS << printRegClassOrBank(Reg, MRI, TRI);
- }
- }
+ if (const MachineFunction *MF = getMFIfAvailable(*this)) {
+ const MachineRegisterInfo &MRI = MF->getRegInfo();
+ if (!PrintDef || MRI.def_empty(Reg)) {
+ OS << ':';
+ OS << printRegClassOrBank(Reg, MRI, TRI);
}
}
}