<html><head></head><body><div dir="auto">Oops, there is a typo on diff file. getLoBits(0) -->getLoBits(1)</div>
<div class="gmail_quote" >On 11 Jun 2018, at 18:06, "jingu@codeplay.com via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<pre class="blue">Hello All,<br><br>I have met one may-alias case from llvm's alias analysis. The code <br>snippet is as following:<br><br>char buf[4];<br><br>void test (int idx) {<br>char *a = &buf[3 - idx];<br>char *b = &buf[idx];<br>*a = 1;<br>*b = 2;<br>}<br><br>I can see below output from alias set tracker for above code snippet.<br><br>Alias sets for function 'test':<br>Alias Set Tracker: 1 alias sets for 2 pointer values.<br>   AliasSet[0x53d8070, 2] may alias, Mod       Pointers: (i8* %arrayidx, <br>1), (i8* %arrayidx2, 1)<br><br>As you can see on above code snippet, the 'a' and 'b' are not aliased. I <br>think if we have following offset form, we can say No-alias between them.<br><br>offset1 = odd_number - index<br><br>offset2 = index<br><br>I have implemented simple code for it and the output is as following:<br><br>Alias sets for function 'test':<br>Alias Set Tracker: 2 alias sets for 2 pointer values.<br>   AliasSet[0x541a070, 1] must alias, Mod       Pointers: (i8* %arrayidx, 1)<br>   AliasSet[0x541cc00, 1] must alias, Mod       Pointers: (i8* <br>%arrayidx2, 1)<br><br>How do you think about this? Is it legal for current alias analysis or <br>not? I have attached the diff file as reference. If I missed something, <br>please let me know.<br><br>Thanks,<br><br>JinGu Kang<br><br><br></pre><pre class="blue"><hr><br>LLVM Developers mailing list<br>llvm-dev@lists.llvm.org<br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br></pre></blockquote></div></body></html>