================
@@ -4060,11 +4060,13 @@ SDValue NVPTXTargetLowering::LowerFormalArguments(
     SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const {
   const DataLayout &DL = DAG.getDataLayout();
   LLVMContext &Ctx = *DAG.getContext();
-  auto PtrVT = getPointerTy(DAG.getDataLayout());
 
   const Function &F = DAG.getMachineFunction().getFunction();
   const bool IsKernel = isKernelFunction(F);
 
+  const MVT PtrVT = getPointerTy(DL, IsKernel ? ADDRESS_SPACE_ENTRY_PARAM
+                                              : ADDRESS_SPACE_LOCAL);
----------------
AlexMaclean wrote:

EVTs don't store the address space in the type (unlike LLVM types) so this 
isn't as impactful of a change as it might look at first. All we're doing here 
is making the size of the integer type dependent on the size of pointers in a 
non-generic AS which matters for short-ptr. 

> Using param space pointer presumably assumes availability of cvta.param 
> instruction and that is gated by the PTX version (>=7.7) and GPU variant 
> (sm_70+).

This won't have any impact on `cvta.param` generation. We need these anywhere a 
ASC to/from `param` AS is used and this does not introduce any more of these 
nodes. 

https://github.com/llvm/llvm-project/pull/206512
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to