Hi! I'm writing my own project in LLVM and I came across a document describing Decoupled software pipelining algorithm written in LLVM by The Liberty Research Group for their VELOCITY C++ compiler:<div><a href="http://liberty.princeton.edu/Research/DSWP/">http://liberty.princeton.edu/Research/DSWP/</a></div>

<div><a href="http://liberty.princeton.edu/Publications/micro38_dswp.pdf">http://liberty.princeton.edu/Publications/micro38_dswp.pdf</a></div><div><br></div><div>and some of spectacular results:</div><div><a href="http://liberty.princeton.edu/videos/gimp.php">http://liberty.princeton.edu/videos/gimp.php</a></div>

<div><a href="http://liberty.princeton.edu/videos/h263.php">http://liberty.princeton.edu/videos/h263.php</a></div><div><br></div><div>I found out, that there was a project to implement this technique as LLVM pass:</div><div>

<a href="http://code.google.com/p/15745-project-dswp/source/browse/">http://code.google.com/p/15745-project-dswp/source/browse/</a></div><div><div><a href="http://www.cs.cmu.edu/~fuyaoz/courses/15745/report.pdf">http://www.cs.cmu.edu/~fuyaoz/courses/15745/report.pdf</a></div>

<div><br></div><div>but this project seems to be not continued anymore, and as we can read in its report - it is not complete and authors dont know if it is working under all conditions.</div><div><br></div><div>The question is - is there any implementation of DSWP in LLVM passes? </div>

<div>I would love to use it in my project and because I'm new to LLVM it would be very hard and time consuming process to write it by myself.</div><div><br></div><div>Or maybe there are some passes in LLVM, that automatically generate multithreaded execution code out of LLVM IR code?</div>

<div><br></div><div>I would be very thankfull for any response in this topic!</div><div>Thank you :)</div><ul class="pathResponseHeaders" style="padding-left:20px;margin-top:10px;font-family:Helvetica,Arial;font-size:medium">

</ul></div>