<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 6/20/2018 2:31 AM, Atheel Massalha
via llvm-dev wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CADWSC+2pyaMLnwYD=rg6ONswQKdNFbrzbrUVwjYv-Vf_GHiF6w@mail.gmail.com">
<div dir="ltr">
<pre style="white-space:pre-wrap;color:rgb(0,0,0);text-decoration-style:initial;text-decoration-color:initial">Hi,
RFC
Im adding 2 new functions to the AliasAnalysis interface:
1) ModRefSameBufferCheck:
this function will receive 2 memoryLocation as parameters, and returns
true if the parameters are modifying or refering the same buffer or
same memory block, false otherwise.</pre>
</div>
</blockquote>
<br>
I'm not completely sure what "same buffer" means; is it just that
given MemoryLocations with addresses A and B, an offset N exists
such that gep(A,N) is mustalias with B? What happens if alias can't
prove whether the two locations point to the "same buffer"?<br>
<br>
Is that actually the property you care about? DependenceAnalysis
would probably be more appropriate if you're trying to analyze
cross-iteration dependencies in loops.<br>
<br>
Could you implement this by just calling alias() with the sizes set
to UnknownSize?<br>
<br>
<blockquote type="cite"
cite="mid:CADWSC+2pyaMLnwYD=rg6ONswQKdNFbrzbrUVwjYv-Vf_GHiF6w@mail.gmail.com">
<div dir="ltr">
<pre style="white-space:pre-wrap;color:rgb(0,0,0);text-decoration-style:initial;text-decoration-color:initial">2) getAddressesDistance:
the function will recieve 2 memoryLocation, if they are mod/ref-ing
the same buffer/memory block, the function will return the distance
between those locations at the memory. None otherwise
(Optional<int64_t>)</pre>
</div>
</blockquote>
<br>
If I'm following correctly, given two values A and B, if a small
constant offset N is known such that A+N==B, N is returned; if the
distance is unknown or not a constant, None is returned. Not sure
why the API takes memoryLocations, instead of just two Value*. Not
sure this really belongs in AliasAnalysis.<br>
<br>
-Eli<br>
<pre class="moz-signature" cols="72">--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
</body>
</html>