[clang] [llvm] [HLSL] Use hlsl_device address space for getpointer. (PR #127675)

Justin Bogner via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 18 10:33:01 PST 2025


================
@@ -94,6 +94,11 @@ bool Qualifiers::isTargetAddressSpaceSupersetOf(LangAS A, LangAS B,
          (A == LangAS::Default &&
           (B == LangAS::cuda_constant || B == LangAS::cuda_device ||
            B == LangAS::cuda_shared)) ||
+         // In HLSL, the this pointer for member functions is in the default
+         // address space. This causes problem if the structure is in
+         // hlsl_device. We want to allow casting from hlsl_device to default
+         // until a proper solution for that issue is found.
+         (A == LangAS::Default && B == LangAS::hlsl_device) ||
----------------
bogner wrote:

Structs in structured buffers are largely working for the DXIL backend right now, so I'd rather not break that. Is the "right" thing to do here to get the "this" pointer into the device address space when the struct is inside of a structured buffer?

https://github.com/llvm/llvm-project/pull/127675


More information about the llvm-commits mailing list