<div dir="ltr">Somewhere on my todo list is to cleanup getModRefInfo, and make  getModRefInfo the only interface memssa uses.<div>Right now, it has to differentiate between calls, fences, and other things to call the right versions.</div><div><br></div><div>Interestingly, fences are the only memory modification instruction we have that has no location, and if you call memorylocation::get on them, we crash.</div><div><br></div><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 19, 2017 at 2:17 PM, Anna Thomas via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">anna added a comment.<br>
<br>
Hi Daniel,<br>
<span class=""><br>
In <a href="https://reviews.llvm.org/D28914#650775" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D28914#650775</a>, @dberlin wrote:<br>
<br>
> Even though most AA related calls will crash trying to get a memorylocation from the fence, this looks right..<br>
<br>
<br>
</span>I've seen the lack of memory locations in optimizations when using `memssa` version for optimizations. So, in such cases, it would still return `ModRef`.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D28914" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D28914</a><br>
<br>
<br>
<br>
</blockquote></div><br></div>