<div dir="ltr">Extracting things like variable names can be done in a best-effort basis by examining debug info metadata/intrinsics in the LLVM IR - but, as I said, it's totally best-effort (which is really "not much effort" when it comes to optimized code) so it may not be present, accurate, etc.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Aug 3, 2016 at 10:16 AM Miguel Aguilar via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I would like to know if it is possible to extract the source level names<br>
of variables that create loop-carried dependencies.<br>
<br>
For example, for the following code:<br>
<br>
     for (int i = 0; i < A_ROW; i++)<br>
     {<br>
         for (int j = 1; j < B_COL; j++)<br>
         {<br>
             a_matrix[i][j] = a_matrix[i][j - 1];<br>
         }<br>
     }<br>
<br>
I get the following  AST:<br>
<br>
       #pragma omp parallel for<br>
       for (int c0 = 0; c0 <= 31; c0 += 1)<br>
         #pragma minimal dependence distance: 1<br>
         for (int c1 = 0; c1 <= 30; c1 += 1)<br>
           Stmt_for_body5(c0, c1);<br>
<br>
As expected the second loop has a dependence distance of 1. Then, here<br>
is when I would like to know if<br>
it possible to extract the name of the variable (a_matrix) e.g. by<br>
developing a custom LLVM pass, based on<br>
Polly passes.<br>
<br>
Thanks,<br>
Miguel<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="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>