Ejjeh, Adel via llvm-dev
2020-Apr-30 22:46 UTC
[llvm-dev] Function attributes for memory side-effects
Hello Neil Thanks for your reply. After experimenting in the Compiler Explorer, it seems that the “readnone” attribute is assigned for functions that neither read from nor write to memory (otherwise “readonly” or “writeonly” are used accordingly when the function does one but not the other). However, one of my problems still exists which is using library function calls (like math library calls – e.g. sqrt()). When the declaration for such functions is being generated in the ll file, it does not include any attributes. Is there a way to handle such scenario? Thanks -Adel From: Neil Henning <neil.henning at unity3d.com> Date: Wednesday, April 29, 2020 at 4:22 AM To: "Ejjeh, Adel" <aejjeh at illinois.edu> Subject: Re: [llvm-dev] Function attributes for memory side-effects Hey Adel Ejjeh, You want to look at the LLVM function attributes readnone and maybe readonly to know that a function has no side effects. You can use the __attribute__((pure)) from clang to force this on functions I believe (see https://godbolt.org/z/dqBMjE for an example). Cheers, -Neil. On Tue, Apr 28, 2020 at 8:58 PM Ejjeh, Adel via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: Hi All I am writing a pass which requires checking dependences, and am having trouble dealing with function calls. Specifically, I want to be able to know when a called function does not have any side effects (e.g. math library functions like sqrt), and was wondering if there are attributes that specify this behavior (I know there is the ‘noread’ attribute but wasn’t sure if there’s something similar for writes)? Also, how can I tell clang to generate those attributes at the function declaration? Any information would be helpful. Thanks -Adel Ejjeh _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev -- [Image removed by sender.] Neil Henning Senior Software Engineer Compiler unity.com<http://unity.com> -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200430/613b610c/attachment.html>