<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 18 Feb 2021, at 18:17, Dangeti Tharun kumar via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi,<div class=""><br class=""></div><div class="">I am using LAI->getDependences(), It returns a vector of Dependence objects in a Loop.</div><div class="">If the loop is un-analyzable or parallel, an empty list is returned.</div><div class=""><br class=""></div><div class=""><b class="">for example:</b></div><div class=""><br class=""></div><div class=""><b class="">Loop A:</b></div><div class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">for (int i = 0; i < N; i ++) {</span><br style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">        a[i] = c[i] + d[i];</span><br style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">        b[i] = c[i] * d[i];</span><br style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">}</span></div><div class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class=""><b class="">Loop B:</b></span></div><div class=""><font color="#263238" face="Roboto, sans-serif" class=""><span style="font-size:13px" class="">for (int i = 0; i < N; i++) {</span></font></div><div class=""><font color="#263238" face="Roboto, sans-serif" class=""><span style="font-size:13px" class="">     </span></font><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">a[b[i]] = c[i] + d[i];</span></div><div class=""><span style="color:rgb(38,50,56);font-family:Roboto,sans-serif;font-size:13px" class="">     c[i] = c[i  - 1] + 1; </span></div><div class=""><font color="#263238" face="Roboto, sans-serif" class=""><span style="font-size:13px" class="">}</span></font></div><div class=""><br class=""></div><div class="">Loop A is parallel and Loop B has non-simple dependences(LAI bails out) for both the cases we get an empty set of dependences.</div><div class=""><br class=""></div><div class="">Is there an API that can tell if LAI was successful in dependence computation?</div></div></div></blockquote></div><br class=""><div class="">I think canVectorizeMemory should do what you want (possibly in combination with getMaxSafeDepDistBytes</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Florian</div></body></html>