13
13
#include " RISCVLegalizerInfo.h"
14
14
#include " RISCVMachineFunctionInfo.h"
15
15
#include " RISCVSubtarget.h"
16
+ #include " llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
16
17
#include " llvm/CodeGen/GlobalISel/LegalizerHelper.h"
17
18
#include " llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
18
19
#include " llvm/CodeGen/MachineRegisterInfo.h"
@@ -335,7 +336,6 @@ static Type *getTypeForLLT(LLT Ty, LLVMContext &C) {
335
336
return IntegerType::get (C, Ty.getSizeInBits ());
336
337
}
337
338
338
- #include " llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
339
339
bool RISCVLegalizerInfo::legalizeIntrinsic (LegalizerHelper &Helper,
340
340
MachineInstr &MI) const {
341
341
Intrinsic::ID IntrinsicID = cast<GIntrinsic>(MI).getIntrinsicID ();
@@ -352,22 +352,18 @@ bool RISCVLegalizerInfo::legalizeIntrinsic(LegalizerHelper &Helper,
352
352
const DataLayout &DL = MIRBuilder.getDataLayout ();
353
353
LLVMContext &Ctx = MF.getFunction ().getContext ();
354
354
355
- Register DstLst = MI.getOperand (0 ).getReg ();
355
+ Register DstLst = MI.getOperand (1 ).getReg ();
356
356
LLT PtrTy = MRI.getType (DstLst);
357
357
358
358
// Load the source va_list
359
359
Align Alignment = Align (DL.getABITypeAlign (getTypeForLLT (PtrTy, Ctx)));
360
- MachineMemOperand *LoadMMO =
361
- MF.getMachineMemOperand (MachinePointerInfo::getUnknownStack (MF),
362
- MachineMemOperand::MOLoad, PtrTy, Alignment);
363
- Register Tmp = MRI.createGenericVirtualRegister (PtrTy);
364
- Register SrcLst = MI.getOperand (1 ).getReg ();
365
- MIRBuilder.buildLoad (Tmp, SrcLst, *LoadMMO);
360
+ MachineMemOperand *LoadMMO = MF.getMachineMemOperand (
361
+ MachinePointerInfo (), MachineMemOperand::MOLoad, PtrTy, Alignment);
362
+ auto Tmp = MIRBuilder.buildLoad (PtrTy, MI.getOperand (2 ), *LoadMMO);
366
363
367
364
// Store the result in the destination va_list
368
- MachineMemOperand *StoreMMO =
369
- MF.getMachineMemOperand (MachinePointerInfo::getUnknownStack (MF),
370
- MachineMemOperand::MOStore, PtrTy, Alignment);
365
+ MachineMemOperand *StoreMMO = MF.getMachineMemOperand (
366
+ MachinePointerInfo (), MachineMemOperand::MOStore, PtrTy, Alignment);
371
367
MIRBuilder.buildStore (DstLst, Tmp, *StoreMMO);
372
368
373
369
MI.eraseFromParent ();
0 commit comments