diff --git a/llvm/lib/Target/VE/VEISelLowering.cpp b/llvm/lib/Target/VE/VEISelLowering.cpp --- a/llvm/lib/Target/VE/VEISelLowering.cpp +++ b/llvm/lib/Target/VE/VEISelLowering.cpp @@ -529,10 +529,12 @@ Offset += 4; int FI = MF.getFrameInfo().CreateFixedObject(ValSize, Offset, true); - InVals.push_back( - DAG.getLoad(VA.getValVT(), DL, Chain, - DAG.getFrameIndex(FI, getPointerTy(MF.getDataLayout())), - MachinePointerInfo::getFixedStack(MF, FI))); + InVals.push_back(DAG.getLoad( + VA.getValVT(), DL, Chain, + DAG.getFrameIndex( + FI, getPointerTy(MF.getDataLayout(), + DAG.getDataLayout().getAllocaAddrSpace())), + MachinePointerInfo::getFixedStack(MF, FI))); } if (!IsVarArg) @@ -583,7 +585,8 @@ SelectionDAG &DAG = CLI.DAG; SDLoc DL = CLI.DL; SDValue Chain = CLI.Chain; - auto PtrVT = getPointerTy(DAG.getDataLayout()); + auto PtrVT = getPointerTy(DAG.getDataLayout(), + DAG.getDataLayout().getProgramAddressSpace()); // VE target does not yet support tail call optimization. CLI.IsTailCall = false; @@ -1568,7 +1571,8 @@ SDValue VETargetLowering::lowerVASTART(SDValue Op, SelectionDAG &DAG) const { MachineFunction &MF = DAG.getMachineFunction(); VEMachineFunctionInfo *FuncInfo = MF.getInfo(); - auto PtrVT = getPointerTy(DAG.getDataLayout()); + auto PtrVT = getPointerTy(DAG.getDataLayout(), + DAG.getDataLayout().getAllocaAddrSpace()); // Need frame address to find the address of VarArgsFrameIndex. MF.getFrameInfo().setFrameAddressIsTaken(true); @@ -1728,7 +1732,8 @@ const VESubtarget *Subtarget) { SDLoc DL(Op); MachineFunction &MF = DAG.getMachineFunction(); - EVT PtrVT = TLI.getPointerTy(MF.getDataLayout()); + EVT PtrVT = TLI.getPointerTy(MF.getDataLayout(), + DAG.getDataLayout().getAllocaAddrSpace()); MachineFrameInfo &MFI = MF.getFrameInfo(); MFI.setFrameAddressIsTaken(true);