[PATCH] D79279: Add overloaded versions of builtin mem* functions
JF Bastien via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 23 11:30:08 PDT 2020
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
More information about the cfe-commits
mailing list