<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 18 June 2015 at 10:58, Igor Laevsky <span dir="ltr"><<a href="mailto:igor@azulsystems.com" target="_blank">igor@azulsystems.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Currently in AliasAnalysis we can model ModRef behaviour for functions which<br>
only access memory through their pointer arguments. However we can't<br>
express this propery as a function attribute.<br>
<br>
For example, for intrinsics we can specify ReadWriteArgMem or ReadArgMem<br>
attributes in tablegen definitions. But due to the lack of the related function<br>
attributes on the llvm ir level, this intrinsics would be modelled as if they<br>
were clobbering arbitrary memory.<br>
<br>
It feels very naturall to add new function attribute which can cover such cases.<br>
<br>
I have a patch (<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__reviews.llvm.org_D10398&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=6QD3kOt2shxvhEw0pkmPGL_NzzjWw6s3ZTzBo-rwkUs&s=MJrrF5wf5KOXiTUsfpoJMSDYvyM_nZ3L79ZSsA9iXaA&e=" rel="noreferrer" target="_blank">http://reviews.llvm.org/D10398</a>) in which I added this<br>
attribute. Currently there is some discussion on how to name it and how it should<br>
behave when defined together with other fucntion attributes.<br></blockquote><div><br></div><div>What does it mean? Can it only touch memory that is directly referred to by an argument? Or if that argument points to another pointer, can we follow it?</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I wanted to get some feedback on this. Is this attribute required at all? Maybe<br>
there is already a way of expressing such things?<br></blockquote><div><br></div><div>The other way today is a custom AA pass. That can either use deduction, or special knowledge about named functions in your runtime.</div><div><br></div></div></div></div>