jfb added a comment. >>> Do you think it'd be useful to have different guarantees for different >>> operands? I guess it could come up, but it'd be a whole lot of extra >>> complexity that I can't imagine we'd ever support. >> >> You mean, if `element_size` is passed then you get different guarantees? > > No, sorry, I mean different guarantees for the different pointer operands. > In principle, we could allow you to say that the memcpy has to be done with > 4-byte accesses from the source and 2-byte accesses to the destination. > That's implementable but a lot of work.
Gotcha. Yeah I think it's useful as a niche thing, and if IR supports that for say `volatile` then we can honor lopsided `volatile` overloads (instead of treating the entire thing as `volatile`). I hadn't really thought about lopsided access sizes (since it fell out of `_Atomic`). Maybe it's useful? I was just banning unequal sizes before because it seemed like a mistake to copy to/from different types. If we wanted to support it, I suppose we could add another optional parameter, so I'm OK not doing it now, and adding later if useful. Alright, I'll update the patch as discussed, thanks! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79279/new/ https://reviews.llvm.org/D79279 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits