<div style="font-family:Verdana;font-size:14px;color:#000;"><div>Hi Lulia,</div><div>   There are different kind of parallelization ? I am assuming you are asking for use LLVM to generate parallel code, not make LLVM run in parallel.</div><div><br></div><div>   There are at least two different kinds of parallelization: </div><div>   1. Auto-parallel. </div><div><br></div><div>   2. parallel language extension support in LLVM+Clang toolchain.</div><div><br></div><div>   </div><div><br></div><div>1. Auto-parallel:</div><div>1.1 Auto-vectorization is such kind of parallel, It automatically analyze standard C/C++ code, and take advantage of the underlying target's SIMD instruction support, such as SSE/AVX/NEON to generate parallel code (SIMD code).  </div><div>      This webpage might contain more details: http://llvm.org/docs/Vectorizers.html#the-slp-vectorizer</div><div>      For the detail implementation, there are LoopVectorizer, SLPVectorizer and BBVectorizer. </div><div><br></div><div>1.2 Instruction Scheduling could be treated as another kind of parallel, which works together with underlying target's VLIW support or Out-Of-Order execution support to improve Instruction-Level-Parallel (ILP). Usually, people likes to treat this as an basic function of the compiler, not a kind of parallelization. But it did improve ILP.</div><div><br></div><div>1.3 Thread-Level automatic parallel support. OpenMP could be treated as a kind of such parallel (<span style="line-height: 1.5;"> http://blog.llvm.org/2015/05/openmp-support_22.html).</span></div><div><br></div><div><br></div><div>2.  parallel language extension support</div><div>2.1 OpenMP  http://blog.llvm.org/2015/05/openmp-support_22.html</div><div>2.2 OpenCL  http://portablecl.org/index.html</div><div>2.3 CUDA  http://llvm.org/docs/NVPTXUsage.html</div><div>2.4 Cilkplus  https://github.com/cilkplus?tab=repositories</div><div><br></div><div>Kun Ling</div><div><br></div><div><br></div><div style="font:Verdana normal 14px;color:#000;padding:8px 0px;"><div> </div><div> </div><div style="FONT-SIZE: 12px;FONT-FAMILY: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="FONT-SIZE: 12px;background:#efefef;padding:8px;"><div><b>From:</b> "Iulia Stirb via llvm-dev"<llvm-dev@lists.llvm.org>; </div><div><b>Date:</b> 2015年9月27日(星期天) 凌晨2:54</div><div><b>To:</b> "llvm-dev@lists.llvm.org"<llvm-dev@lists.llvm.org>; </div><div><b>Subject:</b> [llvm-dev] LLVM and parallelization of target code</div></div><div> </div><div style="color:#000; background-color:#fff; font-family:verdana, helvetica, sans-serif;font-size:24px"><div id="yui_3_16_0_1_1443350953277_3425">Hello,</div><div id="yui_3_16_0_1_1443350953277_3424"><br></div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3493">I am new in this group. I would like to ask what is already implemented in LLVM regarding parallelization?</div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3494"><br></div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3590">Any answer would be much appreciated.</div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3591"><br></div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3592">Many thanks,</div><div dir="ltr" id="yui_3_16_0_1_1443350953277_3593">Iulia Stirb</div></div>
  <!--<![endif]--><style></style></div></div>