Hi Timothy,<div><br></div><div>Today I happened to download the code and do some experiments.</div><div>I actually wanted to see how you handle inter-procedure alias analysis. </div><div>So, I set inline threshold to zero and tried out following example</div>
<div>===============================================</div><div>#define N 1024</div><div><div>void func(double *A, double *B) </div><div>{</div><div> int i;</div><div> for (i=1; i<N-2; i++) {</div><div> B[i] = A[i] + i*3;</div>
<div> }</div><div>}</div><div><br></div><div>void func1(double *A, double *B)</div><div>{</div><div> func(A,B);</div><div>}</div><div><br></div><div>int main(void)</div><div>{</div><div> double data[N];</div><div> double data1[N];</div>
<div> double result=0;</div><div> int i;</div><div> </div><div> for (i=0; i<N; i++) {</div><div> result += i*3;</div><div> data[i] = result;</div><div> }</div><div> func1(data, data1);</div><div> </div><div>
printf(" Data[10] = %lf\n", data[10]);</div><div> printf("Data1[10] = %lf\n", data1[10]);</div><div> </div><div> return 0;</div><div>}</div><div>===============================================</div>
<div>I got following parallalization info after compiling:</div><div><br></div><div> Loop main:for.body has a loop carried scalar dependence, hence will not be parallelized </div><div><div> Loop func:for.body carries no dependence, hence is being parallelized </div>
</div><div><br></div><div>Since A and B to function "func" are aliases it shouldn't have parallelized.</div><div><br></div><div>Can you please let me know how you compute dependence ??</div><div><br></div><div>
<br></div><div>Thanks,</div><div>Rahul</div><div><br></div><div><br></div><br><div class="gmail_quote">On Sun, Mar 10, 2013 at 7:28 AM, Timothy Mattausch Creech <span dir="ltr"><<a href="mailto:tcreech@umd.edu" target="_blank">tcreech@umd.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Mon, Mar 04, 2013 at 03:01:15PM +0800, 陳韋任 (Wei-Ren Chen) wrote:<br>
> Hi Timothy,<br>
><br>
> > We would like to inform the community that we're releasing a version of our research compiler, "AESOP", developed at UMD using LLVM. AESOP is a distance-vector-based autoparallelizing compiler for shared-memory machines. The source code and some further information is available at<br>
> ><br>
> > <a href="http://aesop.ece.umd.edu" target="_blank">http://aesop.ece.umd.edu</a><br>
> ><br>
> > The main components of the released implementation are loop memory dependence analysis and parallel code generation using calls to POSIX threads. Since we currently have only a 2-person development team, we are still on LLVM 3.0, and some of the code could use some cleanup. Still, we hope that the work will be of interest to some.<br>
><br>
> Do you have data show us that how much parallelization the AESOP can<br>
> extract from those benchmarks? :)<br>
><br>
> Regards,<br>
> chenwj<br>
><br>
> --<br>
> Wei-Ren Chen (陳韋任)<br>
> Computer Systems Lab, Institute of Information Science,<br>
> Academia Sinica, Taiwan (R.O.C.)<br>
> Tel:886-2-2788-3799 #1667<br>
> Homepage: <a href="http://people.cs.nctu.edu.tw/~chenwj" target="_blank">http://people.cs.nctu.edu.tw/~chenwj</a><br>
<br>
</div>Hi Wei-Ren,<br>
Sorry for the slow response. We're working on a short tech report which will be up on the website in April. This will contain a "results" section, including results from the SPEC benchmarks which we can't include in the source distribution.<br>
<br>
Briefly, I can say that we get good speedups on some of the NAS and SPEC benchmarks, such as a 3.6x+ speedup on 4 cores on the serial version of NAS "CG" (Fortran), and "lbm" (C) from CPU2006. (These are of course among our best results.)<br>
<br>
-Tim<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Rahul Patil.
</div>