Lines Matching refs:HiLUI
45 bool detectAndFoldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI);
46 void foldOffset(MachineInstr &HiLUI, MachineInstr &LoADDI, MachineInstr &Tail,
80 bool RISCVMergeBaseOffsetOpt::detectLuiAddiGlobal(MachineInstr &HiLUI, in INITIALIZE_PASS()
82 if (HiLUI.getOpcode() != RISCV::LUI || in INITIALIZE_PASS()
83 HiLUI.getOperand(1).getTargetFlags() != RISCVII::MO_HI || in INITIALIZE_PASS()
84 HiLUI.getOperand(1).getType() != MachineOperand::MO_GlobalAddress || in INITIALIZE_PASS()
85 HiLUI.getOperand(1).getOffset() != 0 || in INITIALIZE_PASS()
86 !MRI->hasOneUse(HiLUI.getOperand(0).getReg())) in INITIALIZE_PASS()
88 Register HiLuiDestReg = HiLUI.getOperand(0).getReg(); in INITIALIZE_PASS()
102 void RISCVMergeBaseOffsetOpt::foldOffset(MachineInstr &HiLUI, in foldOffset() argument
106 HiLUI.getOperand(1).setOffset(Offset); in foldOffset()
113 << " " << HiLUI << " " << LoADDI;); in foldOffset()
179 bool RISCVMergeBaseOffsetOpt::detectAndFoldOffset(MachineInstr &HiLUI, in detectAndFoldOffset() argument
194 foldOffset(HiLUI, LoADDI, Tail, Offset); in detectAndFoldOffset()
209 foldOffset(HiLUI, LoADDI, Tail, Offset); in detectAndFoldOffset()
243 HiLUI.getOperand(1).setOffset(Offset); in detectAndFoldOffset()
252 Tail.getOperand(1).setReg(HiLUI.getOperand(0).getReg()); in detectAndFoldOffset()
268 for (MachineInstr &HiLUI : MBB) { in runOnMachineFunction()
270 if (!detectLuiAddiGlobal(HiLUI, LoADDI)) in runOnMachineFunction()
275 detectAndFoldOffset(HiLUI, *LoADDI); in runOnMachineFunction()