Hendrik Greving via llvm-dev
2020-Dec-09 18:27 UTC
[llvm-dev] AA on intrinsics w/ side effects
Is there anything that can be used target specific to do AA for intrinsics w/ side effects but no specific memory pointer? e.g. instr_custom_A // implicitly only address space A instr_custom_B // implicitly only address space B Is there anything in any AA step except e.g. manually propagating alias.scope that would help disambiguating that they are disjoint (in llvm-ir)? The only idea I have is to add unused pointer arguments to the intrinsics for each memory space that are always null, combined w/ IntrArgMemOnly, maybe additionally handling it then w/ external AA. Thanks for help -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201209/e1481d40/attachment-0001.html>
Hendrik Greving via llvm-dev
2020-Dec-09 20:12 UTC
[llvm-dev] AA on intrinsics w/ side effects
Answering my own question: I think AliasAnalysis::getModRefInfo might do. On Wed, Dec 9, 2020 at 10:27 AM Hendrik Greving <hgreving at google.com> wrote:> Is there anything that can be used target specific to do AA for intrinsics > w/ side effects but no specific memory pointer? > > e.g. > instr_custom_A // implicitly only address space A > instr_custom_B // implicitly only address space B > > Is there anything in any AA step except e.g. manually propagating > alias.scope that would help disambiguating that they are disjoint (in > llvm-ir)? > > The only idea I have is to add unused pointer arguments to the intrinsics > for each memory space that are always null, combined w/ IntrArgMemOnly, > maybe additionally handling it then w/ external AA. > > Thanks for help > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201209/3d647428/attachment.html>