[PATCH] D156539: [Clang][CodeGen] `__builtin_alloca`s should care about address spaces too

Alex Voicu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 31 07:13:43 PDT 2023


AlexVlx added a comment.

In D156539#4542836 <https://reviews.llvm.org/D156539#4542836>, @rjmccall wrote:

> We should probably write this code to work properly in case we add a target that makes `__builtin_alloca` return a pointer in the private address space.  Could you recover the target AS from the type of the expression instead of assuming `LangAS::Default`?

I believe it should work as written (it is possible that I misunderstand the objection, case in which I do apologise). The issue is precisely that for some targets (amdgcn being one) `alloca` returns a pointer to private, which doesn't compose with the default AS being unspecified / nonexistent, for some languages (e.g. HIP,  C/C++ etc.). For the OCL case @arsenm mentions, I believe that we make a choice based on `LangOpts.OpenCLGenericAddressSpace`, and the code above would only be valid from the OCL language perspective iff that is true. I've put together a short Godbolt that captures these (and the bug the patch should fix, please see the bitcasts between ASes in the non-OCL case): https://gcc.godbolt.org/z/sYGK76zqv.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156539



More information about the cfe-commits mailing list