================
@@ -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