<div dir="ltr">Hi,<br><br>Hopefully the video Michael posted will help you, thanks for posting. It's more useful to the user of these passes than the developer I guess (it describes<br>the theoretical background, hurdles of the implementation etc.). But the two passes we describe, DependenceAnalysis and MemorySSA, have very clean<br>interfaces so you shouldn't have a problem in that matter. You probably want to look at DependenceAnalysis for array accesses.<br><br>Reconstructing array accesses from LLVM IR and / or performing dependence analysis on them is quite difficult<br>because a lot of info from the front-end has been lost. I mention it in the talk in the talk and you can also<div>see a recent post in the mailing list: <a href="http://lists.llvm.org/pipermail/llvm-dev/2020-October/145575.html">http://lists.llvm.org/pipermail/llvm-dev/2020-October/145575.html</a><br><br>That said DependenceAnalysis will help you if what you do is not super fancy and you are not interested in run-time checks.<br><br>Best,<br>Stefanos</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Στις Τετ, 18 Νοε 2020 στις 3:27 π.μ., ο/η Michael Kruse via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> έγραψε:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">At the last LLVM Developer's Meeting, there was a talk about LLVM<br>
dependency analyses: <a href="https://www.youtube.com/watch?v=1e5y6WDbXCQ" rel="noreferrer" target="_blank">https://www.youtube.com/watch?v=1e5y6WDbXCQ</a><br>
<br>
Michael<br>
<br>
Am Mo., 2. Nov. 2020 um 13:47 Uhr schrieb Anilava Kundu via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>:<br>
><br>
> Hi all<br>
><br>
> I am relatively new to LLVM and I am still trying to work my way through. What I am trying to implement is a list of array access and indices of the same within loops. I can then probably try to work on dependencies they can have.<br>
><br>
> I have already got all the Basic blocks in a loop and I am looking at load & store instructions to reconstruct array access (casting GEP instructions).<br>
><br>
> I tried the default dependence analysis to get probable dependencies but it was of no use.<br>
><br>
> Is there a more graceful way of looking for array accesses or reconstructing them for that matter.<br>
><br>
> Any help would be appreciated<br>
><br>
> Regards<br>
> Anilava<br>
><br>
> Disclaimer:- The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this email. Please notify the sender immediately and destroy all copies of this message and any attachments. The views expressed in this E-mail message (including the enclosure/(s) or attachment/(s) if any) are those of the individual sender, except where the sender expressly, and with authority, states them to be the views of IIT Hyderabad. Before opening any mail and attachments please check them for viruses, malware, and the sender email address is indeed from IITH domain. IITH does not accept any liability for malware infected mails.<br>
><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>