Lines Matching refs:MIRBuilder
89 ARMOutgoingValueHandler(MachineIRBuilder &MIRBuilder, in ARMOutgoingValueHandler()
92 : OutgoingValueHandler(MIRBuilder, MRI, AssignFn), MIB(MIB) {} in ARMOutgoingValueHandler()
101 auto SPReg = MIRBuilder.buildCopy(p0, Register(ARM::SP)); in getStackAddress()
103 auto OffsetReg = MIRBuilder.buildConstant(s32, Offset); in getStackAddress()
105 auto AddrReg = MIRBuilder.buildPtrAdd(p0, SPReg, OffsetReg); in getStackAddress()
107 MPO = MachinePointerInfo::getStack(MIRBuilder.getMF(), Offset); in getStackAddress()
120 MIRBuilder.buildCopy(PhysReg, ExtReg); in assignValueToReg()
130 auto MMO = MIRBuilder.getMF().getMachineMemOperand( in assignValueToAddress()
133 MIRBuilder.buildStore(ExtReg, Addr, *MMO); in assignValueToAddress()
159 MIRBuilder.buildUnmerge(NewRegs, Arg.Regs[0]); in assignCustomValue()
161 bool IsLittle = MIRBuilder.getMF().getSubtarget<ARMSubtarget>().isLittle(); in assignCustomValue()
236 bool ARMCallLowering::lowerReturnVal(MachineIRBuilder &MIRBuilder, in lowerReturnVal() argument
243 auto &MF = MIRBuilder.getMF(); in lowerReturnVal()
260 ARMOutgoingValueHandler RetHandler(MIRBuilder, MF.getRegInfo(), Ret, in lowerReturnVal()
262 return handleAssignments(MIRBuilder, SplitRetInfos, RetHandler); in lowerReturnVal()
265 bool ARMCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder, in lowerReturn() argument
270 auto const &ST = MIRBuilder.getMF().getSubtarget<ARMSubtarget>(); in lowerReturn()
272 auto Ret = MIRBuilder.buildInstrNoInsert(Opcode).add(predOps(ARMCC::AL)); in lowerReturn()
274 if (!lowerReturnVal(MIRBuilder, Val, VRegs, Ret)) in lowerReturn()
277 MIRBuilder.insertInstr(Ret); in lowerReturn()
286 ARMIncomingValueHandler(MachineIRBuilder &MIRBuilder, in ARMIncomingValueHandler()
288 : IncomingValueHandler(MIRBuilder, MRI, AssignFn) {} in ARMIncomingValueHandler()
295 auto &MFI = MIRBuilder.getMF().getFrameInfo(); in getStackAddress()
298 MPO = MachinePointerInfo::getFixedStack(MIRBuilder.getMF(), FI); in getStackAddress()
300 return MIRBuilder.buildFrameIndex(LLT::pointer(MPO.getAddrSpace(), 32), FI) in getStackAddress()
317 MIRBuilder.buildTrunc(ValVReg, LoadVReg); in assignValueToAddress()
326 MachineFunction &MF = MIRBuilder.getMF(); in buildLoad()
330 return MIRBuilder.buildLoad(Res, Addr, *MMO); in buildLoad()
346 MIRBuilder.buildCopy(ValVReg, PhysReg); in assignValueToReg()
353 auto PhysRegToVReg = MIRBuilder.buildCopy(LLT::scalar(LocSize), PhysReg); in assignValueToReg()
354 MIRBuilder.buildTrunc(ValVReg, PhysRegToVReg); in assignValueToReg()
385 bool IsLittle = MIRBuilder.getMF().getSubtarget<ARMSubtarget>().isLittle(); in assignCustomValue()
389 MIRBuilder.buildMerge(Arg.Regs[0], NewRegs); in assignCustomValue()
401 FormalArgHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, in FormalArgHandler()
403 : ARMIncomingValueHandler(MIRBuilder, MRI, AssignFn) {} in FormalArgHandler()
406 MIRBuilder.getMRI()->addLiveIn(PhysReg); in markPhysRegUsed()
407 MIRBuilder.getMBB().addLiveIn(PhysReg); in markPhysRegUsed()
414 MachineIRBuilder &MIRBuilder, const Function &F, in lowerFormalArguments() argument
429 auto &MF = MIRBuilder.getMF(); in lowerFormalArguments()
430 auto &MBB = MIRBuilder.getMBB(); in lowerFormalArguments()
443 FormalArgHandler ArgHandler(MIRBuilder, MIRBuilder.getMF().getRegInfo(), in lowerFormalArguments()
458 MIRBuilder.setInstr(*MBB.begin()); in lowerFormalArguments()
460 if (!handleAssignments(MIRBuilder, SplitArgInfos, ArgHandler)) in lowerFormalArguments()
464 MIRBuilder.setMBB(MBB); in lowerFormalArguments()
471 CallReturnHandler(MachineIRBuilder &MIRBuilder, MachineRegisterInfo &MRI, in CallReturnHandler()
473 : ARMIncomingValueHandler(MIRBuilder, MRI, AssignFn), MIB(MIB) {} in CallReturnHandler()
500 bool ARMCallLowering::lowerCall(MachineIRBuilder &MIRBuilder, CallLoweringInfo &Info) const { in lowerCall() argument
501 MachineFunction &MF = MIRBuilder.getMF(); in lowerCall()
514 auto CallSeqStart = MIRBuilder.buildInstr(ARM::ADJCALLSTACKDOWN); in lowerCall()
520 auto MIB = MIRBuilder.buildInstrNoInsert(CallOpcode); in lowerCall()
555 ARMOutgoingValueHandler ArgHandler(MIRBuilder, MRI, MIB, ArgAssignFn); in lowerCall()
556 if (!handleAssignments(MIRBuilder, ArgInfos, ArgHandler)) in lowerCall()
560 MIRBuilder.insertInstr(MIB); in lowerCall()
569 CallReturnHandler RetHandler(MIRBuilder, MRI, MIB, RetAssignFn); in lowerCall()
570 if (!handleAssignments(MIRBuilder, ArgInfos, RetHandler)) in lowerCall()
578 MIRBuilder.buildInstr(ARM::ADJCALLSTACKUP) in lowerCall()