Anastasia added inline comments.

================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:10221
+ABIArgInfo SPIRABIInfo::classifyKernelArgumentType(QualType Ty) const {
+  if (getContext().getLangOpts().HIP && getTarget().getTriple().isSPIRV()) {
+    // Coerce pointer arguments with default address space to CrossWorkGroup
----------------
It feels like this needs to be in `SPIRVABIInfo`  or something? Or can this be 
generalized to both  - SPIR and SPIR-V?


================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:10224
+    // pointers for HIPSPV. When the language mode is HIP, the SPIRTargetInfo
+    // maps cuda_device to SPIR-V's CrossWorkGroup address space.
+    llvm::Type *LTy = CGT.ConvertType(Ty);
----------------
Can you explain why this mapping is needed? We already have an address space 
map to perform the mapping of address spaces b/w language and target. It would 
be good if we don't replicate similar logic in too many places.


================
Comment at: clang/lib/CodeGen/TargetInfo.cpp:10271
+  if (getABIInfo().getContext().getLangOpts().HIP &&
+      getABIInfo().getTarget().getTriple().isSPIRV()) {
+    FT = getABIInfo().getContext().adjustFunctionType(
----------------
Again this feels like we need `SPIRVTargetCodeGenInfo` unless the logic is 
generalizable to both. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109818/new/

https://reviews.llvm.org/D109818

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to