<div dir="ltr">Hello fellow LLVM developers,<div><br></div><div>I was wondering about the semantic of aliasing.</div><div>Here are some examples where I am not sure if the two stores aliases:</div><div><br></div><div>Example 1:</div><div><br></div><div>for (int i = 2; i < n; ++i) {</div><div>  store A[i];</div><div>  store A[i-2];</div><div>}</div><div><br></div><div>Example 2:</div><div><br></div><div>for (int i = 2; i < n; ++i)</div><div>  store A[i];</div><div><div>for (int i = 2; i < n; ++i)</div><div>  store A[i-2];</div><div><br></div><div>In the example 1, they do not alias in a single iteration, but they do alias at some point if n > 4.</div><div>That is, there is an execution path from one instance of the store to an instance of the other store such that they access the same memory cell.</div><div><br></div><div>In example 2 it is easier to see the difference.</div><div><br></div><div>I am somewhat in the fog here.</div><div><br></div><div>Best regard.</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><b>Alexandre Isoard</b><br></div></div>
</div></div>