Lines Matching refs:HiLUI
46 bool detectAndFoldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI);
47 void foldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI, MachineInstr &Tail,
81 bool RISCVMergeBaseOffsetOpt::detectLuiAddiGlobal(MachineInstr &HiLUI, in detectLuiAddiGlobal() argument
83 if (HiLUI.getOpcode() != RISCV::LUI || in detectLuiAddiGlobal()
84 HiLUI.getOperand(1).getTargetFlags() != RISCVII::MO_HI || in detectLuiAddiGlobal()
85 HiLUI.getOperand(1).getType() != MachineOperand::MO_GlobalAddress || in detectLuiAddiGlobal()
86 HiLUI.getOperand(1).getOffset() != 0 || in detectLuiAddiGlobal()
87 !MRI->hasOneUse(HiLUI.getOperand(0).getReg())) in detectLuiAddiGlobal()
89 unsigned HiLuiDestReg = HiLUI.getOperand(0).getReg(); in detectLuiAddiGlobal()
103 void RISCVMergeBaseOffsetOpt::foldOffset(MachineInstr &HiLUI, in foldOffset() argument
107 HiLUI.getOperand(1).setOffset(Offset); in foldOffset()
114 << " " << HiLUI << " " << LoADDI;); in foldOffset()
180 bool RISCVMergeBaseOffsetOpt::detectAndFoldOffset(MachineInstr &HiLUI, in detectAndFoldOffset() argument
195 foldOffset(HiLUI, LoADDI, Tail, Offset); in detectAndFoldOffset()
210 foldOffset(HiLUI, LoADDI, Tail, Offset); in detectAndFoldOffset()
242 HiLUI.getOperand(1).setOffset(Offset); in detectAndFoldOffset()
251 Tail.getOperand(1).setReg(HiLUI.getOperand(0).getReg()); in detectAndFoldOffset()
267 for (MachineInstr &HiLUI : MBB) { in runOnMachineFunction()
269 if (!detectLuiAddiGlobal(HiLUI, LoADDI)) in runOnMachineFunction()
274 detectAndFoldOffset(HiLUI, *LoADDI); in runOnMachineFunction()