rjmccall added a comment. In D79744#2040348 <https://reviews.llvm.org/D79744#2040348>, @jdoerfert wrote:
> Drive by, I haven't read the entire history. > > In D79744#2040208 <https://reviews.llvm.org/D79744#2040208>, @rjmccall wrote: > > > I don't understand why `noalias` is even a concern if the whole buffer > > passed to the kernel is read-only. `noalias` is primarily about proving > > non-interference, but if you can tell IR that the buffer is read-only, > > that's a much more powerful statement. > > > The problem is that it is a "per-pointer" attribute and not "per-object". > Given two argument pointers, where one is marked `readonly`, may still alias. > Similarly, an access to a global, indirect accesses, ... can write the > "readonly" memory. Oh, do we really not have a way to mark that memory is known to be truly immutable for a time? That seems like a really bad limitation. It should be doable with a custom alias analysis at least. >> Regardless, if you do need `noalias`, you should be able to emit the same IR >> that we'd emit if pointers to all the fields were assigned into `restrict` >> local variables and then only those variables were subsequently used. > > We are still debating the local restrict pointer support. Once we merge that > in it should be usable here. I thought that was finished a few years ago; is it really not considered usable yet? Or does "we" not just mean LLVM here? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79744/new/ https://reviews.llvm.org/D79744 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits