<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hi Michael,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks for your reply!</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Since I want to collect the counts of unique array access to array elements in one iteration, so I consider a[i] and a[i - 1] as two accesses to different array elements. Would it be possible to get the notion of "i - 1" at IR level. </div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
The IR looks like:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>%11 = load float*, float** %a.addr, align 8, !dbg !954</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
%12 = load i32, i32* %i, align 4, !dbg !955
<div>%sub = sub nsw i32 %12, 1, !dbg !956<br>
</div>
<div>%idxprom7 = sext i32 %sub to i64, !dbg !954<br>
</div>
<span>%arrayidx8 = getelementptr inbounds float, float* %11, i64 %idxprom7, !dbg !954</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Working the the source level might be easier, but I wonder if it is possible to know idxprom7 -> i - 1 with IR</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks again!</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Michael</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Michael Kruse <llvmdev@meinersbur.de><br>
<b>Sent:</b> Tuesday, February 18, 2020 9:26 AM<br>
<b>To:</b> Michael Meng <overrainbow2013@hotmail.com><br>
<b>Cc:</b> via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Subject:</b> Re: [llvm-dev] Differentiate array access at IR level</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Note that a[i] are a[i-1] are accessing the same memory addresses,<br>
just not in the same loop iteration. You may want to look into<br>
DependenceInfo.<br>
<br>
Michael<br>
<br>
Am Mo., 17. Feb. 2020 um 00:04 Uhr schrieb Michael Meng via llvm-dev<br>
<llvm-dev@lists.llvm.org>:<br>
><br>
> Hi LLVM community,<br>
><br>
> I am trying to differentiate access to different array elements, for example:<br>
><br>
> for (int i = 1; i < 10; i++) {<br>
><br>
>     a[i] = a[i] + 10;<br>
><br>
>      b[i] = a[i - 1]  * 2;<br>
><br>
> }<br>
><br>
> If it is possible to tell it loads/stores 3 different array elements: a[i], b[i] and a[i - 1] at IR level?<br>
><br>
><br>
> Thanks for your time in advance!<br>
><br>
><br>
> Best,<br>
> Michael<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> llvm-dev@lists.llvm.org<br>
> <a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div>
</span></font></div>
</body>
</html>