<div dir="ltr">Hey Jia,<div>You need to add testcases for this :)</div><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, May 28, 2016 at 1:20 PM, Jia Chen via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">grievejia created this revision.<br>
grievejia added reviewers: hfinkel, george.burgess.iv.<br>
grievejia added a subscriber: llvm-commits.<br>
<br>
As shown in the diff, if cfl-aa encounters a GEP instructions y = gep x, z, we used to treat y and z as potential aliases. However, according to the "Pointer Aliasing Rule" section of LLVM Language Reference, this decision turns out to be overly defensive.<br>
<br>
<a href="http://reviews.llvm.org/D20775" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20775</a><br>
<br>
Files:<br>
  lib/Analysis/CFLAliasAnalysis.cpp<br>
<br>
Index: lib/Analysis/CFLAliasAnalysis.cpp<br>
===================================================================<br>
--- lib/Analysis/CFLAliasAnalysis.cpp<br>
+++ lib/Analysis/CFLAliasAnalysis.cpp<br>
@@ -209,8 +209,6 @@<br>
   void visitGetElementPtrInst(GetElementPtrInst &Inst) {<br>
     auto *Op = Inst.getPointerOperand();<br>
     Output.push_back(Edge(&Inst, Op, EdgeType::Assign, AttrNone));<br>
-    for (auto I = Inst.idx_begin(), E = Inst.idx_end(); I != E; ++I)<br>
-      Output.push_back(Edge(&Inst, *I, EdgeType::Assign, AttrNone));<br>
   }<br>
<br>
   void visitSelectInst(SelectInst &Inst) {<br>
<br>
<br>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>