<div dir="ltr">Thank You.<div><br></div><div>i used -polly-ast-detect-parallel but there is no coincident info generated;</div><div><br></div><div>my c code is simple vec-sum as follows;</div><div><br></div><div><div>#include <stdio.h></div><div>int a[2048], b[2048], c[2048];</div><div>foo () {</div><div>int i;</div><div>for (i=0; i<2048; i++) {</div><div> a[i]=b[5] + c[i];</div><div><br></div><div>}</div><div>}</div></div><div><br></div><div>i executed following commands;</div><div><br></div><div>$clang  -S -emit-llvm vec-sum.cpp -march=native -O3 -mllvm -disable-llvm-optzns -o vec-sum.s<br></div><div>$opt -S -polly-canonicalize vec-sum.s > vecsum.preopt.ll</div><div><div>$opt -polly-ast -polly-ast-detect-parallel -analyze -q vecsum.preopt.ll -polly-process-unprofitable</div></div><div><br></div><div>the output is;</div><div><br></div><div><div>:: isl ast :: foo :: %1---%8</div><div><br></div><div>if (1)</div><div><br></div><div>    #pragma simd</div><div>    #pragma known-parallel</div><div>    for (int c0 = 0; c0 <= 2047; c0 += 1)</div><div>      Stmt0(c0);</div><div><br></div><div>else</div><div>    {  /* original code */ }</div></div><div><br></div><div><br></div><div>there is no coincident info.</div><div><br></div><div>Can you please explain coincident...How it is related to locality?</div><div><br></div><div>Well my work deals with identifying non-temporal accesses and if such accesses are found offload them to my accelerator...</div><div><br></div><div>now it can be done by multiple approaches if i implement my own pass where i do all the dependency and locality analysis from scratch using some builtin llvm passes (i dont know if they are efficient enough), so in the end my pass should detect whether the code has non temporal behavior or not..</div><div>2nd approach could be using polly passes to detect locality (non-temporal) in my new pass..........</div><div><br></div><div>and based on the analysis results i also need to transform my IR such as appending meta data (my-accelerator) to the non temporal accesses (loops).......</div><div><br></div><div>Please help me.</div><div><br></div><div>Thank You</div><div>Regards</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 29, 2018 at 8:20 PM, Michael Kruse <span dir="ltr"><<a href="mailto:llvmdev@meinersbur.de" target="_blank">llvmdev@meinersbur.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
you could use Polly to generate an AstInfo. With the option<br>
-polly-ast-detect-parallel it will mark loops in the generated Ast as<br>
"coincident", i.e. parallel and without reuse.<br>
<br>
If you know the vector width of your accelerator, you can use<br>
LoopVectorizationLegality::<wbr>canVectorize to determine whether you can<br>
vectorize it. If your accelerators computational model assumes no<br>
loop-carried dependencies, maybe LoopVectorizationLegality can be<br>
modified to accept 'infinite' vector width.<br>
<br>
<a href="mailto:polly-dev@googlegroups.com">polly-dev@googlegroups.com</a> would be the mailing list for help<br>
specically for Polly.<br>
<br>
Michael<br>
<div><div class="gmail-h5"><br>
<br>
<br>
<br>
<br>
2018-01-20 9:47 GMT-06:00 hameeza ahmed via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>>:<br>
> Hello,<br>
><br>
> i have been working with an accelerator backend. the accelerator has large<br>
> vector/simd units.<br>
><br>
> i want  streaming loops (non-temporal) vectorized present in code to be<br>
> offloaded to accelerator simd units.<br>
><br>
><br>
> i find polly really suitable for this.<br>
><br>
> i am thinking if the generated IR is passed to polly and then it analyzes<br>
> loop to know it posses no reuse, if such loop is identified accelerator<br>
> instructions are emitted..<br>
><br>
> where should i begin from to achieve the goals?<br>
><br>
> please clarify?<br>
><br>
><br>
> Thank You<br>
> Regards<br>
><br>
</div></div>> ______________________________<wbr>_________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org">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/<wbr>mailman/listinfo/llvm-dev</a><br>
><br>
</blockquote></div><br></div></div></div>